无法执行imwrite我可以通过imshow看到的图像

时间:2013-02-15 09:49:09

标签: c++ opencv

我正在使用opencv,我有一个框架,我可以使用imshow()看到,但当我使用imwrite将其保存在磁盘上时,我得到一个黑色图像。

 ......  
// frame *= 1/255; even converting the color before writing it didn't help
cv::sqrt(frame,frame);
cv::imwrite("name.tif",frame);
frame *=1/15.96;
imshow("frame",frame); //it works fine 
................

anyidea为什么它不起作用。提前谢谢

1 个答案:

答案 0 :(得分:0)

你在这里做的是你已经执行了imwrite(),然后对frame执行了数学运算,然后执行了imshow()。

因此,您正在编写和查看2个不同版本的Mat框架。 如果您已验证.tiff扩展程序有效,那么sqrt()可能会产生黑框。尝试:

cv::sqrt(frame,frame);

frame *=1/15.96;

cv::imwrite("name.tif",frame);
imshow("frame",frame);

现在您可以确定您正在撰写您所看到的内容。如果两者之间仍然存在差异,那么尝试对其他图像格式执行相同的操作