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 图像打印起来很有趣,而其他格式打印得很好。重新安装 libtiff
和 tiff
修复了错误。
【讨论】:
以上是关于opencv打印奇怪的黑色图像的主要内容,如果未能解决你的问题,请参考以下文章