版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HighGUI参考手册中文翻译者: 于仕琪,中科院自动化所自由软件协会 张兆翔,中科院自动化所自由软件协会 简单图形界面 读取与保存图像 视频读写 实用函数与系统函数 按字母顺序排列的函数列表 HighGUI概述TODO简单图形界面cvNamedWindow创建窗口int cvNamedWindow( const char* name, int flags );name 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。 flags 窗口属性标志。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,如果用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像
2、(参考cvShowImage)。 函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。被创建的窗口可以通过它们的名字被引用。 如果已经存在这个名字的窗口,这个函数将不做任何事情。cvDestroyWindow销毁一个窗口void cvDestroyWindow( const char* name );name 要被销毁的窗口的名字。 函数cvDestroyWindow销毁指定名字的窗口。 cvDestroyAllWindows销毁所有HighGUI窗口void cvDestroyAllWindows(void);函数cvDestroyAllWindows销毁所有已经打开
3、的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改变窗口的位置
4、。 cvGetWindowHandle通过名字获取窗口句柄void* cvGetWindowHandle( const char* name );name 窗口名字。 函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget) cvGetWindowName通过句柄获取窗口的名字const char* cvGetWindowName( void* window_handle );window_handle 窗口句柄。 给定函数cvGetWindowName一个窗口的句柄(在Win32情况下是HWND,GTK+情况下是GtkW
5、idget),函数返回窗口的名字。 cvShowImage在指定窗口中显示图像void cvShowImage( const char* name, const CvArr* image );name 窗口的名字。 image 被显示的图像。 函数cvShowImage 在指定窗口中显示图像。如果窗口创建的时候被设定标志CV_WINDOW_AUTOSIZE,那么图像将以原始尺寸显示;否则,图像将被伸缩以适合窗口大小。 cvCreateTrackbar创建trackbar并将它添加到指定的窗口。CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int
6、 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 每次滑块位置被改变的时候,被调用函数的指针
7、。这个函数应该被声明为void Foo(int); 如果没有回调函数,这个值可以设为NULL。 函数cvCreateTrackbar用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量,并且指定当trackbar位置被改变的时候调用的回调函数。被创建的trackbar显示在指定窗口的顶端。 cvGetTrackbarPos获取trackbar的位置int cvGetTrackbarPos( const char* trackbar_name, const char* window_name );trackbar_name trackbar的名字。
8、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设置鼠标事件
9、的回调函数#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_MBUTTONDBLCL
10、K 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 32CV_EXTERN_C_FUNCPTR( void (*CvMouseCallback )(int event, int x, int y, int flags, void* param) );void cvSetMo
11、useCallback( 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的组合, param是用户定义的传递到cvS
12、etMouseCallback函数调用的参数。 param 用户定义的传递到回调函数的参数。 函数cvSetMouseCallback设定指定窗口鼠标事件发生时的回调函数。详细使用方法,请参考opencv/samples/c/ffilldemo.c demo。cvWaitKey等待按键事件int cvWaitKey( int delay=0 );delay 延迟的毫秒数。 函数cvWaitKey无限制的等待按键事件(delay0,读入的图像将被强制转换为3通道彩色图像;如果为 0, 读入的图像将被强制转换为灰度图像;如果 0, 读入的图像将与它本来颜色信息一样 (颜色通道数目由图像文件决定)。
13、 函数cvLoadImage从指定文件读入图像,返回读入图像的指针。目前支持如下文件格式: Windows位图文件 - BMP, DIB; JPEG文件 - JPEG, JPG, JPE; 便携式网络图片 - PNG; 便携式图像格式 - PBM,PGM,PPM; Sun rasters - SR,RAS; TIFF文件 - TIFF,TIF。 cvSaveImage保存图像到文件int cvSaveImage( const char* , const CvArr* image ); 文件名。 image 要保存的图像。 函数cvSaveImage保存图像到指定文件。图像格式的的选择依赖于的扩
14、展名,请参考cvLoadImage。只有8位单通道或者3通道(通道顺序为BGR )可以使用这个函数保存。如果格式,深度或者通道不符合要求,请先用cvCvtScale 和cvCvtColor转换;或者使用通用的cvSave保存图像为XML或者YAML格式。 视频读写函数CvCapture视频获取结构typedef struct CvCapture CvCapture;结构CvCapture 没有公共接口,它只能被用来作为视频获取函数的一个参数。 cvCaptureFromFile初始化从文件中获取视频CvCapture* cvCaptureFromFile( const char* ); 视频文
15、件名。 函数cvCaptureFromFile给指定文件中的视频流分配和初始化CvCapture结构。 当分配的结构不再使用的时候,它应该使用cvReleaseCapture函数释放掉。 cvCaptureFromCAM初始化从摄像头中获取视频CvCapture* cvCaptureFromCAM( int index );index 要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。 函数cvCaptureFromCAM给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video for Windows(VFW
16、)和Matrox Imaging Library(MIL); Linux下也有两种接口:V4L和FireWire(IEEE1394)。 释放这个结构,使用函数cvReleaseCapture。cvReleaseCapture释放CvCapture结构void cvReleaseCapture( CvCapture* capture );capture 视频获取结构指针。 函数cvReleaseCapture释放由cvCaptureFromFile 或者cvCaptureFromCAM申请的CvCapture结构。 cvGrabFrame从摄像头或者视频文件中抓取帧int cvGrabFrame
17、( CvCapture* capture );capture 视频获取结构指针。 函数cvGrabFrame从摄像头或者文件中抓取帧。被抓取的帧在内部被存储。这个函数的目的是快速的抓取帧,这一点对同时从几个摄像头读取数据的同步是很重要的。被抓取的帧可能是压缩的格式(由摄像头驱动定义),所以没有被公开出来。如果要取回获取的帧,请使用cvRetrieveFrame。 cvRetrieveFrame取回由函数cvGrabFrame抓取的图像IplImage* cvRetrieveFrame( CvCapture* capture );capture 视频获取结构。 函数cvRetrieveFrame
18、返回由函数cvGrabFrame 抓取的图像的指针。返回的图像不可以被用户释放或者修改。 cvQueryFrame从摄像头或者文件中抓取并返回一帧IplImage* cvQueryFrame( CvCapture* capture );capture 视频获取结构。 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。 cvGetCaptureProperty获得视频获取结构的属性double cvGetCaptureProperty( C
19、vCapture* capture, int property_id );capture 视频获取结构。 property_id 属性标识。可以是下面之一:CV_CAP_PROP_POS_MSEC - 影片目前位置,为毫秒数或者视频获取时间戳CV_CAP_PROP_POS_FRAMES - 将被下一步解压获取的帧索引,以0为起点CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)CV_CAP_PROP_FRAME_WIDTH - 视频流中的帧宽度CV_CAP_PROP_FRAME_HEIGHT - 视频流中的帧高度CV_CAP_P
20、ROP_FPS - 帧率CV_CAP_PROP_FOURCC - 表示codec的四个字符 CV_CAP_PROP_FRAME_COUNT - 视频文件中帧的总数 函数cvGetCaptureProperty获得摄像头或者视频文件的指定属性。 译者注:有时候这个函数在cvQueryFrame被调用一次后,再调用cvGetCaptureProperty才会返回正确的数值。cvSetCaptureProperty设置视频获取属性int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );capture
21、视频获取结构。 property_id 属性标识符。可以是下面之一:CV_CAP_PROP_POS_MSEC - 从文件开始的位置,单位为毫秒CV_CAP_PROP_POS_FRAMES - 单位为帧数的位置(只对视频文件有效)CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)CV_CAP_PROP_FRAME_WIDTH - 视频流的帧宽度(只对摄像头有效)CV_CAP_PROP_FRAME_HEIGHT - 视频流的帧高度(只对摄像头有效)CV_CAP_PROP_FPS - 帧率(只对摄像头有效)CV_CAP_PROP_FO
22、URCC - 表示codec的四个字符(只对摄像头有效) value 属性的值。 函数cvSetCaptureProperty设置指定视频获取的属性。目前这个函数对视频文件只支持: CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO cvCreateVideoWriter创建视频文件写入器typedef struct CvVideoWriter CvVideoWriter;CvVideoWriter* cvCreateVideoWriter( const char* , int fourcc, doub
23、le fps, CvSize frame_size, int is_color=1 ); 输出视频文件名。 fourcc 四个字符用来表示压缩帧的codec 例如,CV_FOURCC(P,I,M,1)是MPEG-1 codec, CV_FOURCC(M,J,P,G)是motion-jpeg codec等。 在Win32下,如果传入参数-1,可以从一个对话框中选择压缩方法和压缩参数。 fps 被创建视频流的帧率。 frame_size 视频流的大小。 is_color 如果非零,编码器将希望得到彩色帧并进行编码;否则,是灰度帧(只有在Windows下支持这个标志)。 函数cvCreateVide
24、oWriter创建视频写入器结构。 cvReleaseVideoWriter释放视频写入器void cvReleaseVideoWriter( CvVideoWriter* writer );writer 指向视频写入器的指针。 函数cvReleaseVideoWriter结束视频文件的写入并且释放这个结构。 cvWriteFrame写入一帧到一个视频文件中int cvWriteFrame( CvVideoWriter* writer, const IplImage* image );writer 视频写入器结构。 image被写入的帧。 函数cvWriteFrame写入附加到视频文件一帧。 实用函数与系统函数cvInitSystem初始化HighGUIint cvInitSystem( int argc, char* argv );argc 命令行参数个数。 argv 命令行参数数组。 函数cvInitSystem初始化HighGUI。如果在第一个窗口被创建前这个函数不能被用户显式地调用,这个函数将以参数argc=0,argv=NULL隐式地被调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恶性心律失常急救护理:病情观察与处置要点
- 2026年通信行业高温季节网络维护方案
- 头颈部肿瘤放化疗患者症状网络的时序演变及护理策略总结2026
- 公司开工讲话稿
- 严查安全培训漏洞讲解
- 小学消防安全主题作文范文
- 福建消防安全专家指南
- 2026年食品安全监管规划方案
- 2.1 一元二次方程(基础达标)(原卷版)
- 《趣味学自我调节|让课堂告别枯燥 爱上学习》
- 2026四川成都农业科技中心第二批招聘17人备考题库及1套完整答案详解
- 仓库货物收发验收管理规范
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 24J113-1 内隔墙-轻质条板(一)
- 《高中信息技术创新教学指南(2025版)》
- 电力工程改造施工技术方案
- 初中班主任考核积分细则表
- 医院妇产科绩效考核细则方案
- 2025年河北机关事业单位工人技能等级考试(服务员·技师)在线题库及答案
- 2024八年级数学下册 第20章 函数20.2函数 1函数说课稿(新版)冀教版
- 电脑绣花制版设计下34课件
评论
0/150
提交评论