我尝试了一些变化,但似乎resizeWindow不做任何事情。 我给出了简单的代码示例,结果是2个窗口的大小相同,尽管它应该有不同的大小。
Mat m = imread("somePath",CV_LOAD_IMAGE_COLOR);
namedWindow("aa",CV_WINDOW_NORMAL);
namedWindow("bb",CV_WINDOW_NORMAL);
imshow("aa",m);
imshow("bb",m);
resizeWindow("aa",400,400);
resizeWindow("bb",800,800);
waitKey(0);
我使用opencv 2.4.3在ubunto 12.04上使用eclipse-cdt。
答案 0 :(得分:6)
以下代码段适用于我:
namedWindow("Final", 0);
resizeWindow("Final", 500,500);
"只能调整没有CV_WINDOW_AUTOSIZE标志的窗口。"
参考:http://docs.opencv.org/modules/highgui/doc/user_interface.html#resizewindow
答案 1 :(得分:3)
确保使用Qt后端支持安装OpenCV。
引自the documentation of namedWindow()
(重点是我的):
flags - 窗口的标志。 目前唯一支持的标志是 CV_WINDOW_AUTOSIZE 即可。如果设置了此项,则会自动显示窗口大小 调整到适合显示的图像(见imshow()),你不能 手动更改窗口大小。
...
注意:Qt后端支持其他标志:CV_WINDOW_NORMAL或 CV_WINDOW_AUTOSIZE :CV_WINDOW_NORMAL使您可以调整窗口大小, 而CV_WINDOW_AUTOSIZE自动调整窗口大小 适合显示的图像(见imshow()),你不能改变 手动窗口大小。
CV_WINDOW_AUTOSIZE
可能是您系统上唯一支持的标志。 Documentation for resizeWindow
表示只有在没有 CV_WINDOW_AUTOSIZE
标志的情况下创建的窗口才能调整大小。您的选择是:
resize()
功能在显示图像之前调整图像大小。答案 2 :(得分:1)
我也有这个问题,底线是OpenCV窗口有一个最小尺寸,你试图创建的这两个窗口都低于它。我有理由相信你的图片区域也会被剪裁,可能还有灰色或其他虚假信息。