您的位置:首页 > 产品设计 > UI/UE

HighGUI简单图形界面

2017-04-21 10:01 519 查看
HighHGUI只是用来建立快速软件原形或是试验用的。它提供了简单易用的图形用户接口,但是功能并不强大,也不是很灵活。


目录

 [隐藏]
1 cvNamedWindow
2 cvDestroyWindow
3 cvDestroyAllWindows
4 cvResizeWindow
5 cvMoveWindow
6 cvGetWindowHandle
7 cvGetWindowName
8 cvShowImage
9 cvCreateTrackbar
10 cvGetTrackbarPos
11 cvSetTrackbarPos
12 cvSetMouseCallback
13 cvWaitKey
[编辑]


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环境下,这个函数不起作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: