2013-04-09 109 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()函數來顯示它之前調整圖像大小。