学习opencv第二章函数
2011-08-15 20:56
288 查看
第二章:
创建,销毁窗口,显示图像
CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOSIZE) ); //name为创建窗口名,标识符。
CVAPI(void) cvDestroyWindow( const char* name ); //
flags为窗口的属性:一般为 CV_WINDOW_AUTOSIZE,会根据显示的内容,自动调节窗口大小
CVAPI(int) cvCreateTrackbar( const char* trackbar_name, const char* window_name,int* value, int count, CvTrackbarCallback on_change);//创建一个滑块
window_name指定在哪个窗口上创建,value表示滑块的数据交换对象(实时指示滑块位置),count表示滑块的总步长,on_change回调函数 (声明格式为:
void OnTrackbarSlide(int pos) ;表示滑块被拖动后,由系统调用的处理函数)
CVAPI(void) cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos ); //设置滑块的位置
从捕获,释放图像流
CVAPI(CvCapture*) cvCreateFileCapture( const char* filename ); //从文件filename中创建图像流
CVAPI(CvCapture*) cvCreateCameraCapture( int index ); //从摄像机捕获视频流(帧),index用于区分哪个摄像机
CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc,double fps, CvSize frame_size,int is_color CV_DEFAULT(1)); //创建一个AVI写入器
CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer ); //关闭AVI视频写入器.
CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id ); //获取图像流的属性
CVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value ); // 设置图像流的属性
CVAPI(IplImage*) cvQueryFrame( CvCapture* capture ); // 从图像流中获取一幅图像 , 不用自己cvReleaseImage
CVAPI(void) cvReleaseCapture( CvCapture** capture ); // release
其中 : property_id:
#define CV_CAP_PROP_POS_MSEC 0 //?
#define CV_CAP_PROP_POS_FRAMES 1 //当前帧的位置
#define CV_CAP_PROP_POS_AVI_RATIO 2 //
#define CV_CAP_PROP_FRAME_WIDTH 3 //帧宽度
#define CV_CAP_PROP_FRAME_HEIGHT 4 //帧高度
#define CV_CAP_PROP_FPS 5 //帧率
#define CV_CAP_PROP_FOURCC 6
#define CV_CAP_PROP_FRAME_COUNT 7 //总共的帧数
#define CV_CAP_PROP_FORMAT 8 //格式
#define CV_CAP_PROP_MODE 9
#define CV_CAP_PROP_BRIGHTNESS 10
#define CV_CAP_PROP_CONTRAST 11
#define CV_CAP_PROP_SATURATION 12
#define CV_CAP_PROP_HUE 13
#define CV_CAP_PROP_GAIN 14
#define CV_CAP_PROP_EXPOSURE 15
#define CV_CAP_PROP_CONVERT_RGB 16
#define CV_CAP_PROP_WHITE_BALANCE 17
#define CV_CAP_PROP_RECTIFICATION
创建,显示图像
CVAPI(void) cvShowImage( const char* name, const CvArr* image ); //在指定的name窗口中显示图像
CVAPI(void) cvReleaseImage( IplImage** image ); //释放图像数据,image指针会被函数置为NULL
CVAPI(CvSize) cvGetSize( const CvArr* arr ); //arr 可为 IplImage, 获取大小
CVAPI(IplImage*) cvCreateImage( CvSize size, int depth, int channels ); //创建一个图像结构, size为图像大小,depth为图像bit位大小, channels 为 几通首
depth可为:
#define IPL_DEPTH_1U 1 //1比特表示
#define IPL_DEPTH_8U 8 //1字节(无符号数)
#define IPL_DEPTH_16U 16 //2字节无符号数
#define IPL_DEPTH_32F 32 //4字节浮点数
channels指颜色通道。如RGB彩色图像由3个分量表示 ,故用3通道存储 ; 灰度图像1通道数
CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code ); //转换图像的颜色
code可为,一般用到:
#define CV_RGB2GRAY 7 //RGB转灰度
#define CV_RGB2XYZ 33 //?
#define CV_XYZ2RGB 35
#define CV_RGB2YCrCb 37
#define CV_YCrCb2RGB 39
#define CV_RGB2HSV 41
#define CV_RGB2Lab 45
#define CV_HSV2RGB 55
键盘输入相关
CVAPI(int) cvWaitKey(int delay CV_DEFAULT(0)); //等待键盘输入
delay表示等待时间 ,。默认为0时表示,程序一直等待直到有按键输入为止,返回值为键的ASCII码值。若不为0,则等待最多delay (ms)
滤波函数
CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst, int smoothtype CV_DEFAULT(CV_GAUSSIAN), int size1 CV_DEFAULT(3), int size2 CV_DEFAULT(0), double sigma1 CV_DEFAULT(0), double sigma2 CV_DEFAULT(0)); //平滑图像
in 为输入 ,out为已分配好内存的参数
CVAPI(void) cvPyrDown( const CvArr* src, CvArr* dst, int filter CV_DEFAULT(CV_GAUSSIAN_5x5) ); //先对其用filter进行滤波,然后进行下采样(输出图像宽,高为原来的一半..若宽度为奇数,则返回的图像可以是width/2 或者width /2 +1 ;对于高也一样); src和dst的depth相同,通道数也相同
CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1,double threshold2, int aperture_size CV_DEFAULT(3) ); //canny边缘检测
输入入图像image必须为单通道图像,输出图像也为单通道图像 。 depth相同 即输入为灰度8U时,edges也应该为单通道8U
创建,销毁窗口,显示图像
CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOSIZE) ); //name为创建窗口名,标识符。
CVAPI(void) cvDestroyWindow( const char* name ); //
flags为窗口的属性:一般为 CV_WINDOW_AUTOSIZE,会根据显示的内容,自动调节窗口大小
CVAPI(int) cvCreateTrackbar( const char* trackbar_name, const char* window_name,int* value, int count, CvTrackbarCallback on_change);//创建一个滑块
window_name指定在哪个窗口上创建,value表示滑块的数据交换对象(实时指示滑块位置),count表示滑块的总步长,on_change回调函数 (声明格式为:
void OnTrackbarSlide(int pos) ;表示滑块被拖动后,由系统调用的处理函数)
CVAPI(void) cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos ); //设置滑块的位置
从捕获,释放图像流
CVAPI(CvCapture*) cvCreateFileCapture( const char* filename ); //从文件filename中创建图像流
CVAPI(CvCapture*) cvCreateCameraCapture( int index ); //从摄像机捕获视频流(帧),index用于区分哪个摄像机
CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc,double fps, CvSize frame_size,int is_color CV_DEFAULT(1)); //创建一个AVI写入器
CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer ); //关闭AVI视频写入器.
CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id ); //获取图像流的属性
CVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value ); // 设置图像流的属性
CVAPI(IplImage*) cvQueryFrame( CvCapture* capture ); // 从图像流中获取一幅图像 , 不用自己cvReleaseImage
CVAPI(void) cvReleaseCapture( CvCapture** capture ); // release
其中 : property_id:
#define CV_CAP_PROP_POS_MSEC 0 //?
#define CV_CAP_PROP_POS_FRAMES 1 //当前帧的位置
#define CV_CAP_PROP_POS_AVI_RATIO 2 //
#define CV_CAP_PROP_FRAME_WIDTH 3 //帧宽度
#define CV_CAP_PROP_FRAME_HEIGHT 4 //帧高度
#define CV_CAP_PROP_FPS 5 //帧率
#define CV_CAP_PROP_FOURCC 6
#define CV_CAP_PROP_FRAME_COUNT 7 //总共的帧数
#define CV_CAP_PROP_FORMAT 8 //格式
#define CV_CAP_PROP_MODE 9
#define CV_CAP_PROP_BRIGHTNESS 10
#define CV_CAP_PROP_CONTRAST 11
#define CV_CAP_PROP_SATURATION 12
#define CV_CAP_PROP_HUE 13
#define CV_CAP_PROP_GAIN 14
#define CV_CAP_PROP_EXPOSURE 15
#define CV_CAP_PROP_CONVERT_RGB 16
#define CV_CAP_PROP_WHITE_BALANCE 17
#define CV_CAP_PROP_RECTIFICATION
创建,显示图像
CVAPI(void) cvShowImage( const char* name, const CvArr* image ); //在指定的name窗口中显示图像
CVAPI(void) cvReleaseImage( IplImage** image ); //释放图像数据,image指针会被函数置为NULL
CVAPI(CvSize) cvGetSize( const CvArr* arr ); //arr 可为 IplImage, 获取大小
CVAPI(IplImage*) cvCreateImage( CvSize size, int depth, int channels ); //创建一个图像结构, size为图像大小,depth为图像bit位大小, channels 为 几通首
depth可为:
#define IPL_DEPTH_1U 1 //1比特表示
#define IPL_DEPTH_8U 8 //1字节(无符号数)
#define IPL_DEPTH_16U 16 //2字节无符号数
#define IPL_DEPTH_32F 32 //4字节浮点数
channels指颜色通道。如RGB彩色图像由3个分量表示 ,故用3通道存储 ; 灰度图像1通道数
CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code ); //转换图像的颜色
code可为,一般用到:
#define CV_RGB2GRAY 7 //RGB转灰度
#define CV_RGB2XYZ 33 //?
#define CV_XYZ2RGB 35
#define CV_RGB2YCrCb 37
#define CV_YCrCb2RGB 39
#define CV_RGB2HSV 41
#define CV_RGB2Lab 45
#define CV_HSV2RGB 55
键盘输入相关
CVAPI(int) cvWaitKey(int delay CV_DEFAULT(0)); //等待键盘输入
delay表示等待时间 ,。默认为0时表示,程序一直等待直到有按键输入为止,返回值为键的ASCII码值。若不为0,则等待最多delay (ms)
滤波函数
CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst, int smoothtype CV_DEFAULT(CV_GAUSSIAN), int size1 CV_DEFAULT(3), int size2 CV_DEFAULT(0), double sigma1 CV_DEFAULT(0), double sigma2 CV_DEFAULT(0)); //平滑图像
in 为输入 ,out为已分配好内存的参数
CVAPI(void) cvPyrDown( const CvArr* src, CvArr* dst, int filter CV_DEFAULT(CV_GAUSSIAN_5x5) ); //先对其用filter进行滤波,然后进行下采样(输出图像宽,高为原来的一半..若宽度为奇数,则返回的图像可以是width/2 或者width /2 +1 ;对于高也一样); src和dst的depth相同,通道数也相同
CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1,double threshold2, int aperture_size CV_DEFAULT(3) ); //canny边缘检测
输入入图像image必须为单通道图像,输出图像也为单通道图像 。 depth相同 即输入为灰度8U时,edges也应该为单通道8U
相关文章推荐
- 学习opencv第二章所用函数总结
- OpenCV学习笔记(3):一些函数等的解释(更新中...)
- opencv2函数学习之threshold:实现图像阈值化
- 学习《OpenCV 2 计算机视觉编程手册》第二章遍历图像和领域操作实例——对图像进行锐化
- 基础学习笔记之opencv(18):kmeans函数使用实例
- opencv学习—HighGUI部分函数介绍及例子
- 基础学习笔记之opencv(24):imwrite函数的使用
- 【OpenCV学习笔记】【函数学习】七(改变图像尺寸)
- opencv2函数学习之threshold:实现图像阈值化
- scala学习第二章 控制结构与函数
- opencv中的cvCanny函数学习
- OpenCV示例学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
- 【OpenCV学习笔记】【函数学习】十七(imread()函数)
- OpenCV学习二十五:calcBackProject 直方图反射函数
- OpenCV学习:fastAtan2函数解密
- opencv学习(七)之图像卷积运算函数filter2D()
- 【OpenCV学习笔记6】常用的OpenCV函数速查
- OpenCV学习——用绘图函数画一个奥运志愿者笑脸徽章
- 【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)
- 【OpenCV学习笔记】【函数学习】三(cvGetCaptureProperty函数)