Imshow() 在 stitching_detailed.cpp opencv 中不起作用
Imshow() doesnt work in stitching_detailed.cpp opencv
我在 opencv 源文件中的 opencv 示例 (stitching_detailed.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 中显示拼接图像?
实际上,这不是错误。 result
是int16
的3通道矩阵,不能用imshow
显示(显示灰度图)。
只需将其转换为常规 Mat3b,例如:
Mat3b visibleResult;
convertScaleAbs(result, visibleResult);
imshow("visibleResult", visibleResult);
waitKey();
你应该能看到它。
希望对您有所帮助!
我在 opencv 源文件中的 opencv 示例 (stitching_detailed.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 中显示拼接图像?
实际上,这不是错误。 result
是int16
的3通道矩阵,不能用imshow
显示(显示灰度图)。
只需将其转换为常规 Mat3b,例如:
Mat3b visibleResult;
convertScaleAbs(result, visibleResult);
imshow("visibleResult", visibleResult);
waitKey();
你应该能看到它。
希望对您有所帮助!