2013-04-09 74 views
4

我尝试了一些变化,但似乎resizeWindow不做任何事情。 我给出了简单的代码示例,结果是2个窗口的大小相同,但它应该是不同的大小。opencv - resizeWindow什么都不做?

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文件丢失的编译错误。

回答

1

我也有过这个问题,底线是OpenCV窗口有一个最小尺寸,并且你尝试创建的窗口都落在它下面。我相当确定你的图片区域也被裁剪掉了,可能是灰色或其他虚假信息。

+0

正如我所说我尝试了一些变化。我修正了代码,所以尺寸是400和800,没有什么变化。 – shanif 2013-04-14 07:34:31

+0

取决于您的安装,请参阅下面的帖子。 – Vlad 2014-03-01 07:58:28

3

确保OpenCV的安装使用Qt的后台支持。

报价从the documentation of namedWindow()(重点是我的):

标志 - 窗口的标志。 目前唯一支持的标志是 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标志可以调整大小。您的选项是:

  • 安装OpenCV使用Qt后端,或
  • 使用resize()函数来显示它之前调整图像大小。