opencv打印奇怪的黑色图像

Posted

技术标签:

【中文标题】opencv打印奇怪的黑色图像【英文标题】:opencv printing weird black images 【发布时间】:2015-03-31 04:20:16 【问题描述】:

opencv imwrite 在我的 C++ 代码中打印出奇怪的黑色(ish)图像。读取图像然后打印出来的示例代码如下:

#include "iostream"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;

int main()

    cv::Mat input_image = cv::imread("input_image.tiff",0);
    cv::imwrite("output_image.tiff",input_image);

    return 0;

我编译为g++ -std=c++11 main.cc -o bin `pkg-config --cflags --libs opencv`

输入图像和输出图像如下(应该相同):

输入图像 输出图像

图像被正确读取,因为我通过访问不同的像素值对其进行了检查。因此问题出在 imwrite 中。

额外信息:代码一开始运行良好,但突然改变了它的行为,重新安装 opencv 及其库没有帮助。

谁能告诉我这里出了什么问题,

谢谢

【问题讨论】:

首先确保您读取的输入图像是正确的。在窗口中显示它。即 namedWindow("temp",input_image);也可以尝试保存为其他格式,例如 BMP.. 那是完整的代码吗?看起来有点像您使用 findContours (修改输入图像!)。 是的,这是完整的代码。目标是查看 imwrite 是否有效。是的,它的工作方式就像我在所有情况下都运行 findContours 一样。这在 SUSE 更新后开始发生,所以我想知道这是否是 openCV 更新中的错误 【参考方案1】:

我想,我发现了错误。 libtiff 坏了,所以 tiff 图像打印起来很有趣,而其他格式打印得很好。重新安装 libtifftiff 修复了错误。

【讨论】:

以上是关于opencv打印奇怪的黑色图像的主要内容,如果未能解决你的问题,请参考以下文章

openCV保存图片之后是一张黑色图片解决办法

检查灰度图像中的像素是不是为黑色(OpenCV)

Opencv在图像上绘制黑色像素

Opencv - 蒙版图像导致黑色图像

OpenCv 3.3 Cuda Medianfilter 生成图像黑色的 2/3

OpenCV2.3 imwrite 保存黑色图像