Imshow()在stitching_detailed.cpp opencv中不起作用



我在opencv源文件中的opencv示例(stitching_detail.cpp)的末尾添加了imshow("result",result),但它没有显示图像。如果我把它保存到.jpg,然后用imread重新打开它,它就会正常工作。有人知道为什么吗?这段代码将文件保存在result.jpg中,但不显示图像!!奇怪的

imwrite("result.jpg", result); namedWindow("resultwindow", WINDOW_AUTOSIZE); imshow("resultwindow", result); waitKey(0);

下面的代码将显示图像,但时间对我来说很重要,我不想保存文件然后阅读它(我的项目是实时缝合)

imwrite(result_name, result);
Mat result2=imread("result.jpg");
namedWindow("resultwindow", WINDOW_AUTOSIZE);
imshow("resultwindow", result2);
waitKey(0);

这真的很奇怪。试试看。你会看到,有人帮我哪里不对吗?!!如何在stitching_Detailed.cpp中显示缝合的图像?

实际上,这不是一个bug。resultint16的3通道矩阵,不能用imshow显示(显示灰色图像)。

只需将其转换为常规Mat3b即可,如:

Mat3b visibleResult;
convertScaleAbs(result, visibleResult);
imshow("visibleResult", visibleResult);
waitKey();

你应该能够看到它。

希望它能有所帮助!

相关内容

  • 没有找到相关文章

最新更新