2011-07-25 41 views
12

我可以使用OpenCV創建包含按鈕,列表框等等的GUI嗎?OpenCV和創建GUI

謝謝。

+1

這是一個令人沮喪的OpenCV限制。高GUUI是差不多你需要的所有東西,但不完全。看到我的相關SO問題:http://stackoverflow.com/q/5874305/200688 – AndyL

回答

13

OpenCV有highgui內置用於製作圖形用戶界面。

你可以找到online tutorials讓你開始。

請注意,這不是一個廣泛的GUI庫。你只能做一些基本的東西,比如打開窗口,繪製點,反鋸齒線,矩形和文本。有一個滑塊小部件,可用作開關按鈕。如果你需要比這更多,您可以

  • 建立的東西自己(比如畫一個矩形,文本,使自己的按鈕),或
  • 使用另一個庫像Qt它提供了大量的小部件(按鈕,菜單,列表,對話...)

祝你好運,如果你去的第一個!

+0

感謝您的答覆。我瞭解'Highgui'並搜索了一些例子,但是找不到我所問的內容。 – Simplicity

+0

我剛剛添加了詳細信息... – Simon

+3

HighGUI非常有限,**不應該用於構建GUI。它的主要目的是顯示圖像/視頻幀,如果你需要稍微複雜一些的東西,那麼你需要找到一個第三方庫(Qt,wxWidgets,...)。 – karlphillip

4

除了Simon指出的highgui功能之外,其他人已經使用OpenCV in conjunctionQt。可以將相機幀翻譯成QLabel小部件中的圖像,並定期更新標籤上的圖像。

8

Learning OpenCV中,在頁面101中提到以下標題:否按鈕

而且,這是一些什麼這個標題中提到:

不幸的是,HighGUI不提供任何按鈕明確的支持。因此, 通常的做法,在特別懶惰的之間改爲使用只有兩個 位置的滑塊。 OpenCV樣本中的OpenCV樣本中出現的另一個選項樣本/ c /是使用鍵盤快捷鍵代替按鈕(例如,請參閱OpenCV源代碼包中的 中的演示程序演示文稿)*

3

在windows上,您可以使用cvGetWindowHandle來獲取窗口句柄(HWND)。使用該句柄,您可以從WinAPI中調用CreateWindow並將WinAPI控件放在該窗口上。

但您還需要覆蓋或掛鉤OpenCV爲該窗口設置的WindowProc。掛鉤和覆蓋在這裏解釋Multiple WndProc functions in Win32