无法对使用imshow可以看到的图像执行imwrite操作

Unable to perform imwrite an image that I can see with imshow

本文关键字:图像 执行 操作 imwrite imshow      更新时间:2023-10-16

我使用的是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 
................

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

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

埃尔戈,你正在书写和观看两个不同版本的Mat框架。如果您已经验证了.tif扩展是否有效,那么sqrt()可能会导致一个黑框。尝试:

cv::sqrt(frame,frame);
frame *=1/15.96;
cv::imwrite("name.tif",frame);
imshow("frame",frame);

现在你可以确定你在写你所看到的。如果两者之间仍然存在差异,则尝试对其他图像格式

执行相同操作