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

标签 c++ image opencv

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

enter image description here

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

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

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

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

问候

最佳答案

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

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

要将图像涂黑,您可以使用 Mat::setTo,文档在这里:

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

关于c++ - 在 opencv 中保存图像的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971868/

相关文章:

opencv - 用于OpenCV问题的Video4Linux Y12像素格式

c++ - 忽略另一个内部的连接组件

c++ - 无法弄清楚 int[3][3] 和 int(* const)[3] 之间的区别

c++ - 如何合并多个版本的gcda文件?

c# - 带有 C# WPF 的 EMGU

CSS + <img> webkit 使用 % 实现

image - 为 4 channel 图像中的对象添加填充

用gcc编译的C++在VC++14有效无效

c++ - 使用 Gdiplus::Image 处理错误

python - 使用openCV-python将两个轮廓分割成两个相同大小的不同图像