我正在使用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为什么它不起作用。提前谢谢
答案 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);
现在您可以确定您正在撰写您所看到的内容。如果两者之间仍然存在差异,那么尝试对其他图像格式执行相同的操作