• Open Source Computer Vision Library

HighGUI简单图形界面

Wikipedia,自由的百科全书

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坐标。
窗口左上角的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环境下,这个函数不起作用。

Views
Personal tools