c++ - Opencv图像以较小的尺寸保存而不压缩

标签 c++ opencv visual-studio-2012

我的问题如下: 我有一个相机(分辨率: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/

相关文章:

c++ - 如何为 lambda 赋值重载 operator=?

c++ - 什么更好 : to delete pointer or set it with a new value?

c++ - strcoll 中的 Unicode 规范化

opencv - 从OpenCV的Essential矩阵正确解释 'recoverPose'之后的姿势(旋转和翻译)

visual-studio-2012 - 如何配置 Visual Studio 将所有 TypeScript 文件合并到一个 JavaScript 文件中?

c++ - c/c++ 中的 url 缩短算法 - 面试

c++ - OpenCV 2.1 托管 C++ (CLI/C++) 中的 cvSetMouseCallback

python - 使用 python 订阅 ROS sensor_msg/Image

c# - 手动发布 ClickOnce

c++ - C++ 字符串文字的类型