0

我正在使用 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 
................

知道为什么它不起作用。提前致谢

4

1 回答 1

0

您在这里所做的是执行了 imwrite(),然后对帧执行了数学运算,然后执行了 imshow()。

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

cv::sqrt(frame,frame);

frame *=1/15.96;

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

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

于 2016-10-18T06:58:33.950 回答