2013-01-10 31 views
6

這裏是我的應用程序的簡化版本:如何將cv :: namedWindow放入OpenCV2中?

Mat img = imread("./picture.png"); 
namedWindow("Picture", CV_WINDOW_AUTOSIZE); 
imshow("Picture", img); 
waitKey(0); 

當我執行編譯的應用程序(在與MacOS 10.8.2與OpenCV的2.4.3)打開終端窗口下面的窗口,沒有焦點。所以,我必須先點擊(或製表),然後才能完成waitKey的任意鍵。

是否可以自動將cv::namedWindow變爲焦點?

+1

請參閱:http://stackoverflow.com/questions/8417531/opencv-how-to-force-the-image-window-to-appear-on-top-of-other-windows或http:// stackoverflow .com/questions/5960968/opencv-window-always-on-top?lq = 1 – Smash

+0

我明白了。因此,基於這些答案,無論是「否」或「使用cvGetWindowHandle」(在OpenCV2中似乎都被棄用;至少我無法在文檔中的任何位置找到它),然後找出MacOS爲窗口提供的功能,管理和編寫一些醜陋的平臺特定的代碼。我想這是可以理解的,因爲highgui並不是一個強大的窗口框架。 –

回答

0

您可能可以枚舉所有窗口並將它們的標題與您自己的窗口標題進行比較。我不確定如何在MacOS中執行此操作,但在Windows下,有一個API可以幫助您完成這項工作:EnumWindows()。

因爲OpenCV 2.x仍然支持很多舊的C風格函數,所以你可以檢查cvGetWindowHandle()是否仍然包含在內。