在opencv中保存图像的奇怪行为

Posted

技术标签:

【中文标题】在opencv中保存图像的奇怪行为【英文标题】:weird behaviour saving image in opencv 【发布时间】:2012-06-10 19:54:34 【问题描述】:

在做了一些 opencv 操作后,我初始化了一个我想使用的新图像。保存这个空图像会产生奇怪的结果

我用来保存这张图片的行是:

Mat dst2 (Size (320, 240), CV_8UC3);
imwrite("bla.jpg", dst2);

我应该得到一张黑色的图像,但这就是我得到的。将这两行移到程序的开头一切都很好 以前有人遇到过这个问题吗?

我刚刚注意到这些白线包含我在同一程序中处理的其他图像的部分

问候

【问题讨论】:

【参考方案1】:

因为你没有用任何值初始化图像,你只是定义了大小和类型,你会得到随机像素(或者不是那么随机,它可能在内存中显示像素块)。

这与使用/访问未初始化变量的概念相同。

要将图像涂成黑色,您可以使用 Mat::setTo,此处的文档:

http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-setto

【讨论】:

以上是关于在opencv中保存图像的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

opencv打印奇怪的黑色图像

在 OpenCV 中打开和保存图像会使图像变大(ruby-opencv)

使用java和opencv进行灰度图像的图像融合给出了奇怪的结果

使用 OpenCV 保存图像的问题?

在 OpenCV 中保存原始图像

opencv学习笔记opencv加载图像修改图像显示图像保存图像以及代码举例