opencv - resizeWindow什么都不做?

时间:2013-04-09 11:48:39

标签: opencv resize window

我尝试了一些变化,但似乎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。

  • 我尝试调试它,进入函数但我没有成功添加highGui modoul作为外部源,我得到一些h文件丢失的编译错误。

3 个答案:

答案 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标志的情况下创建的窗口才能调整大小。您的选择是:

  • 使用Qt后端安装OpenCV,或
  • 使用resize()功能在显示图像之前调整图像大小。

答案 2 :(得分:1)

我也有这个问题,底线是OpenCV窗口有一个最小尺寸,你试图创建的这两个窗口都低于它。我有理由相信你的图片区域也会被剪裁,可能还有灰色或其他虚假信息。