繁体   English   中英

openCV cvSaveImage()增加图像大小

[英]openCV cvSaveImage() increases the size of image

我正在加载图像,并使用cvSaveImage()保存相同的图像但名称不同。 保存后,新保存的图像的大小会增加。 谁能告诉我为什么以及如何避免它? 这是我的代码:

int main(){

IplImage* src = cvLoadImage("test.jpg", 0);

cvSaveImage("reTest.jpg", src);

return 0;

}

谢谢。

这是因为OpenCV默认使用的JPEG压缩系数较低。 这是如何传递自定义压缩因子-OpenCV cvSaveImage Jpeg压缩因子

在JPEG中结合使用不同的压缩和编码方法。 与cvSaveImage的标准openCV参数化相比,您的原始图像很可能使用了不同的压缩/编码。

尝试这个:

IplImage* src = cvLoadImage("test.jpg", 0);
cvSaveImage("reTest.jpg", src);
IplImage* reSrc = cvLoadImage("reTest.jpg",0);
cvSaveImage("reTest2.jpg", reSrc);

如果reTest.jpgreTest2.jpg具有相同的大小,则openCV不会增加文件大小,而只是使用不同的压缩级别或其他。 您必须找出原始文件的压缩级别和编码,然后使用这些相同的参数保存它,也许使用与openCV不同的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM