2011-07-25 42 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