HighHGUI只是用来建立快速软件原形或是试验用的。它提供了简单易用的图形用户接口,但是功能并不强大,也不是很灵活。
目录[隐藏] |
cvNamedWindow
创建窗口
int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );
-
name
- 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。 flags
- 窗口属性标志,为1时表示会根据图像自动调整窗口大小。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像(参考cvShowImage)。
函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。被创建的窗口可以通过它们的名字被引用。
如果已经存在这个名字的窗口,这个函数将不做任何事情。
cvDestroyWindow
销毁一个窗口
void cvDestroyWindow( const char* name );
-
name
- 要被销毁的窗口的名字。
函数cvDestroyWindow销毁指定名字的窗口。
cvDestroyAllWindows
销毁所有HighGUI窗口
void cvDestroyAllWindows(void);
函数cvDestroyAllWindows销毁所有已经打开的HighGUI窗口。
cvResizeWindow
设定窗口大小
void cvResizeWindow( const char* name, int width, int height );
-
name
- 将被设置窗口的名字。 width
- 新的窗口宽度。 height
- 新的窗口高度。
函数cvResizeWindow改变窗口的大小。
cvMoveWindow
设定窗口的位置
void cvMoveWindow( const char* name, int x, int y );
-
name
- 将被设置的窗口的名字。 x
- 窗口左上角的x坐标。 y
- 窗口左上角的y坐标。
函数cvMoveWindow改变窗口的位置。
cvGetWindowHandle
通过名字获取窗口句柄
void* cvGetWindowHandle( const char* name );
-
name
- 窗口名字。
函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)
cvGetWindowName
通过句柄获取窗口的名字
const char* cvGetWindowName( void* window_handle );
-
window_handle
- 窗口句柄。
给定窗口的句柄(在Win32情况下是HWND,GTK+情况下是GtkWidget),返回窗口的名字。
cvShowImage
在指定窗口中显示图像
void cvShowImage( const char* name, const CvArr* image );
-
name
- 窗口的名字。 image
- 被显示的图像。
函数cvShowImage 在指定窗口中显示图像。如果窗口创建的时候被设定标志CV_WINDOW_AUTOSIZE,那么图像将以原始尺寸显示;否则,图像将被伸缩以适合窗口大小。
cvCreateTrackbar
创建trackbar并将它添加到指定的窗口。
CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) ); int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change );
-
trackbar_name
- 被创建的trackbar名字。 window_name
- 窗口名字,这个窗口将为被创建trackbar的父对象。 value
- 整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。 count
- 滑块位置的最大值。最小值一直是0。 on_change
- 每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int); 如果没有回调函数,这个值可以设为NULL。
函数cvCreateTrackbar用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量,并且指定当trackbar位置被改变的时候调用的回调函数。被创建的trackbar显示在指定窗口的顶端。
cvGetTrackbarPos
获取trackbar的位置
int cvGetTrackbarPos( const char* trackbar_name, const char* window_name );
-
trackbar_name
- trackbar的名字。 window_name
- trackbar父窗口的名字。
函数cvGetTrackbarPos返回指定trackbar的当前位置。
cvSetTrackbarPos
设置trackbar位置
void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos );
-
trackbar_name
- trackbar的名字。 window_name
- trackbar父窗口的名字。 pos
- 新的位置。
函数cvSetTrackbarPos设置指定trackbar的位置。
cvSetMouseCallback
设置鼠标事件的回调函数
#define CV_EVENT_MOUSEMOVE 0 #define CV_EVENT_LBUTTONDOWN 1 #define CV_EVENT_RBUTTONDOWN 2 #define CV_EVENT_MBUTTONDOWN 3 #define CV_EVENT_LBUTTONUP 4 放开鼠标左键 #define CV_EVENT_RBUTTONUP 5 #define CV_EVENT_MBUTTONUP 6 #define CV_EVENT_LBUTTONDBLCLK 7 #define CV_EVENT_RBUTTONDBLCLK 8 #define CV_EVENT_MBUTTONDBLCLK 9 #define CV_EVENT_FLAG_LBUTTON 1 #define CV_EVENT_FLAG_RBUTTON 2 #define CV_EVENT_FLAG_MBUTTON 4 #define CV_EVENT_FLAG_CTRLKEY 8 #define CV_EVENT_FLAG_SHIFTKEY 16 #define CV_EVENT_FLAG_ALTKEY 32 CV_EXTERN_C_FUNCPTR( void (*CvMouseCallback )(int event, int x, int y, int flags, void* param) ); void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse, void* param=NULL );
-
window_name
- 窗口的名字。 on_mouse
- 指定窗口里每次鼠标事件发生的时候,被调用的函数指针。这个函数的原型应该为
void Foo(int event, int x, int y, int flags, void* param);
其中event是 CV_EVENT_*变量之一, x和y是鼠标指针在图像坐标系的坐标(不是窗口坐标系), flags是CV_EVENT_FLAG的组合(即上面的一些有关现在动作状态的预定义,现在鼠标没任何操作时为0), param是用户定义的传递到cvSetMouseCallback函数调用的参数。
-
param
- 用户定义的传递到回调函数的参数。
函数cvSetMouseCallback设定指定窗口鼠标事件发生时的回调函数。详细使用方法,请参考opencv/samples/c/ffilldemo.c demo。
cvWaitKey
等待按键事件
int cvWaitKey( int delay=0 );
-
delay
- 延迟的毫秒数。
函数cvWaitKey无限制的等待按键事件(delay<=0时);或者延迟"delay"毫秒。返回值为被按键的值,如果超过指定时间则返回-1。
注释:这个函数是HighGUI中唯一能够获取和操作事件的函数,所以在一般的事件处理中,它需要周期地被调用,除非HighGUI被用在某些能够处理事件的环境中。
译者注:比如在MFC环境下,这个函数不起作用。