opencv 常用函数说明(4)

2019-08-29 18:33

cvWaitKey

等待按键事件

int cvWaitKey( int delay=0 );

delay

延迟的毫秒数。

函数cvWaitKey无限制的等待按键事件(delay<=0时);或者延迟\毫秒。返回值为被按键的值,如果超过指定时间则返回-1。

注释:这个函数是HighGUI中唯一能够获取和操作事件的函数,所以在一般的事件处理中,它需要周期地被调用,除非HighGUI被用在某些能够处理事件的环境中。

读取与保存图像

cvLoadImage

从文件中读取图像

IplImage* cvLoadImage( const char* filename, int iscolor=1 );

filename

要被读入的文件的文件名。

iscolor

指定读入图像的颜色:

如果 >0,读入的图像将被强制转换为3通道彩色图像; 如果为 0, 读入的图像将被强制转换为灰度图像;

如果 <0, 读入的图像将与它本来颜色信息一样 (颜色通道数目由图像文件决定)。

函数cvLoadImage从指定文件读入图像,返回读入图像的指针。目前支持如下文件格式:

? ? ? ? ? ?

Windows位图文件 - BMP, DIB; JPEG文件 - JPEG, JPG, JPE; 便携式网络图片 - PNG;

便携式图像格式 - PBM,PGM,PPM; Sun rasters - SR,RAS; TIFF文件 - TIFF,TIF。

cvSaveImage

保存图像到文件

int cvSaveImage( const char* filename, const CvArr* image );

filename 文件名。

image

要保存的图像。

函数cvSaveImage保存图像到指定文件。图像格式的的选择依赖于filename的扩展名,请参考cvLoadImage。只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。如果格式,深度或者通道不符合要求,请先用

cvCvtScale 和cvCvtColor转换;或者使用通用的cvSave保存图像为XML或者YAML格式。

视频读写函数

CvCapture

视频获取结构

typedef struct CvCapture CvCapture;

结构CvCapture 没有公共接口,它只能被用来作为视频获取函数的一个参数。

cvCaptureFromFile

初始化从文件中获取视频

CvCapture* cvCaptureFromFile( const char* filename );

filename

视频文件名。

函数cvCaptureFromFile给指定文件中的视频流分配和初始化CvCapture结构。 当分配的结构不再使用的时候,它应该使用cvReleaseCapture函数释放掉。

cvCaptureFromCAM

初始化从摄像头中获取视频

CvCapture* cvCaptureFromCAM( int index );

index

要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参

数-1应该便可以。

函数cvCaptureFromCAM给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有两种接口:V4L和FireWire(IEEE1394)。 释放这个结构,使用函数cvReleaseCapture。

cvReleaseCapture

释放CvCapture结构

void cvReleaseCapture( CvCapture** capture );

capture

视频获取结构指针。

函数cvReleaseCapture释放由cvCaptureFromFile 或者cvCaptureFromCAM申请的CvCapture结构。

cvGrabFrame

从摄像头或者视频文件中抓取帧

int cvGrabFrame( CvCapture* capture );

capture

视频获取结构指针。

函数cvGrabFrame从摄像头或者文件中抓取帧。被抓取的帧在内部被存储。这个函数的目的是快速的抓取帧,这一点对同时从几个摄像头读取数据的同步是很重要的。被抓取的帧可能是压缩的格式(由摄像头/驱动定义),所以没有被公开出来。如果要取回获取的帧,请使用cvRetrieveFrame。

cvRetrieveFrame

取回由函数cvGrabFrame抓取的图像

IplImage* cvRetrieveFrame( CvCapture* capture );

capture

视频获取结构。

函数cvRetrieveFrame返回由函数cvGrabFrame 抓取的图像的指针。返回的图像不可以被用户释放或者修改。

cvQueryFrame

从摄像头或者文件中抓取并返回一帧

IplImage* cvQueryFrame( CvCapture* capture );

capture

视频获取结构。

函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。

cvGetCaptureProperty

获得视频获取结构的属性

double cvGetCaptureProperty( CvCapture* 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_PROP_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

视频获取结构。

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_FOURCC - 表示codec的四个字符(只对摄像头有效)

value

属性的值。

函数cvSetCaptureProperty设置指定视频获取的属性。目前这个函数对视频文件只支持: CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO


opencv 常用函数说明(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Quartus常见错误分析 Error

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: