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及其库无济于事。
有人可以告诉我这里有什么问题,
由于
答案 0 :(得分:0)
我想,我发现了错误。 libtiff
被打破,所以tiff图像打印有趣,而其他格式打印得很好。重新安装libtiff
和tiff
修复了错误。