我使用开源和节能为jpeg使用cvSaveImage功能,但我无法找到Jpeg压缩因子的使用。

  1. 什么cvSaveImage(...)'s Jpeg压缩因子
  2. 我如何可以通过压缩因子的时候使用cvSaveImage(...)

其他提示

OpenCV现在有一个参数来设置jpeg质量。我不确定这是什么时候引入的,但大概是在2.0之后的某个时候。

const int JPEG_QUALITY = 80;

Mat src;
// put data in src

vector<int> params;
params.push_back(CV_IMWRITE_JPEG_QUALITY);
params.push_back(JPEG_QUALITY);

imwrite("filename.jpg", src, params);

如果您使用的是C ++ 0x,则可以使用这种较短的表示法:

imwrite("filename.jpg", src, vector<int>({CV_IMWRITE_JPEG_QUALITY, JPEG_QUALITY});
  1. 你可以在这里找到源代码: http:// opencvlibrary.svn.sourceforge.net/viewvc/opencvlibrary/
  2. 你不能,因为函数不接受这样的参数。如果你想控制压缩,那么我能想到的最简单的方法是首先用cvSaveImage()(或你选择的另一种无损格式)将图像保存为位图,然后使用另一个图像库将其转换为JPEG的所需的压缩系数。
imwrite("filename.jpeg",src,(vector<int>){CV_IMWRITE_JPEG_QUALITY, 20});
  • filename.jpeg 将输出的文件名
  • src 能源读取图像含有变
  • (vector<int>) 转换
  • {CV_IMWRITE_JPEG_QUALITY, 20} 一系列的要素是通过为Param_ID和Param_value在imwrite功能
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top