Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在不改变分辨率的情况下减小图像数据的大小?_C++_Opencv_Image Processing_Signal Processing - Fatal编程技术网

C++ 如何在不改变分辨率的情况下减小图像数据的大小?

C++ 如何在不改变分辨率的情况下减小图像数据的大小?,c++,opencv,image-processing,signal-processing,C++,Opencv,Image Processing,Signal Processing,我尝试了几种方法来减小图像大小,但都失败了。所有这些都与此类似: //Mat frame... vector<uchar> buff; vector<int> params; params.push_back(cv::IMWRITE_JPEG_QUALITY); params.push_back(50); //Tried any value here, didn't change much cv::imencode(".j

我尝试了几种方法来减小图像大小,但都失败了。所有这些都与此类似:

    //Mat frame...
    vector<uchar> buff;
    vector<int> params;
    params.push_back(cv::IMWRITE_JPEG_QUALITY);
    params.push_back(50); //Tried any value here, didn't change much

    cv::imencode(".jpg", frame, buff, params);
    Mat a = cv::imdecode(buff,1);
    // a size is bigger than frame's
//垫框。。。
矢量增益;
向量参数;
参数push_back(cv::IMWRITE_JPEG_QUALITY);
参数推回(50)//在这里尝试了任何价值,没有太大变化
cv::imencode(“.jpg”,帧,buff,参数);
Mat a=cv::imdecode(buff,1);
//尺寸比框架大
如何在不改变分辨率的情况下减小图像(Mat对象)的大小

编辑:

我正在从照相机上取帧,并把它们录下来。按原样保存帧会使1分钟的视频重达100mb左右,这是完全不可接受的。如何减少每帧的大小(字节数)?

您需要的不是图像压缩


另一种方法可能是首先模糊图像并将其编码为jpeg。模糊会降低熵,因此图像可能会压缩得更好。考虑到您对JPEG压缩不满意,为了减小图像大小,我想您无法避免降低质量,模糊可能不是最糟糕的解决方案,这取决于您的问题。

什么大小?压缩大小?请查看编辑。我认为压缩和解压缩会减少图像的大小,但事实并非如此。这会降低质量。使用不同的量化表解压时,JPEG图像会降级。问题是,您需要什么质量?你不能同时拥有全高清和每个图像7KB。我需要减小每个帧的大小,即使这意味着降低质量。同意。还可以使用VideoWriter类()和一些无损压缩选项()?