我的问题如下: 我有一个相机(分辨率:640 x 480 像素),在图像采集后我从该相机获取图像(我得到一个 8 位/像素灰度图像)我以 bmp 格式保存图像。我的代码如下:
Mat img2(640,480,CV_8UC1,0)
;
cap.read(img2);
bool succes = imwrite("D:\\TestImage3.bmp",img2);
if(!succes){
cout << "Failed to save the image";
return -1;
}
namedWindow("myWindow",CV_WINDOW_AUTOSIZE);
imshow("myWindow",img2);
保存的图像非常大,几乎有 1 MB,我想要一个更小的图像而不丢失任何信息(不压缩图像)???
关于这个话题的第二个问题是: 即使有时图像是灰色的,我仍然会收到一些 rgb 噪声,这就像我为图像设置了 3 channel 设置而不是 1 channel 设置
如果有人知道答案请告诉我,我将不胜感激 感谢您的宝贵时间!
最佳答案
您可以将图像保存为 PNG
,这是一种无损图像压缩格式。
bool succes = imwrite("D:\\TestImage3.png",img2);
关于c++ - Opencv图像以较小的尺寸保存而不压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19951455/