2015-11-05 245 views
0

因此,我使用由MinGW幫助自己編譯的OpenCV 3.0。我編寫並構建在Windows的Visual Studio 2013中。而CV_WINDOW_NORMAL| CV_WINDOW_KEEPRATIO作爲namedWindow()的行爲似乎並沒有限制我的窗口的resizin,我注意到的是CV_WINDOW_NORMAL=0,CV_WINDOW_KEEPRATIO=0。任何解釋?CV_WINDOW_KEEPRATIO似乎不起作用

回答

0

據我記得,該參數不適用於窗口本身,而是適用於窗口的內容圖像。

這意味着您仍然可以自由調整窗口大小,但顯示的圖像保持其比率,並被黑色(或任何顏色)條圍繞,而不是按比例拉伸。

編輯:從namedWindow-Documentation

注 摘錄

Qt的後端支持附加標誌:

CV_WINDOW_FREERATIO或CV_WINDOW_KEEPRATIO:CV_WINDOW_FREERATIO 沒有關於其比率調整圖像,而 CV_WINDOW_KEEPRATIO保持圖像比例。 [...]

請注意QT約束。

關於標誌定義的第二個問題: 我認爲兩者都爲零的原因是,因爲存在多組排斥選項。 (正常窗口< - >固定大小的窗口;免費可擴展性< - >比率保持可擴展性)。對於每個選項你都沒有自己的看法,因爲。所以默認只是一個簡單的位。爲其定義的原因僅僅是更好的可讀性和代碼理解。

+0

情況並非如此 – Ilia

+0

@Ilia它是 - 請參閱鏈接並注意措詞上的差異。有些標誌與'窗口'有關,有些標誌與'圖像'有關 –

+0

我看你沒有得到我在說什麼,所以繼承人爲你的gif http://vk.com/doc13632015_437004532 – Ilia