opencv学习(一)书本《学习Opencv》(中文版)的第二章的10个入门样例的分析
来源:互联网 发布:种植牙费用 知乎 编辑:程序博客网 时间:2024/04/30 12:49
ex2-1显示一张图片(简单)
IplImage* img = cvLoadImage( argv[1] );
功能:将图像文件加载至内存
返回:一个指针,指向该图像文件的数据结构IplImage
cvNameWindow( "Example1", CV_WINDOW_AUTOSIZE );
功能:在屏幕上创建一个窗口
参数:第一个参数指定该窗口的标题,第二个参数定义窗口属性,0或CV_WINDOW_AUTOSIZE,自动拉伸缩放否
cvShowImage( "Example1", img );
功能:在窗口中显示图像
cvWaitKey(0);
功能:使程序暂停
参数:该时长为整数个毫秒单位,0或负数则一直等待用户触发按键操作
返回:触发按键的ASCII码,否则返回 -1
cvReleaseImage( &img );
功能:释放为该图像文件所分配的内存,img=NULL
cvDestroyWindow( "Example" );
功能:销毁显示图像文件的窗口
ex2-2显示一段视频(简单)
CvCapture* capture = cvCreateFileCapture( argv[1] );
功能:读入AVI文件,只分配一帧的空间,每次调用覆盖原来的数据
返回:一个指向CvCapture结构的指针
功能:填充或更新CvCapture结构,下一帧视频文件载入内存,不必释放内存,内存在CvCapture结构中
参数:一个CvCapture结构的指针
返回:一个对应当前帧的指针
cvReleaseCapture( &capture );
功能:释放CvCapture结构的内存空间
ex2-3视频加滚动条(有难度)
设置项目可以带参数运行时,此时不必再把arg[0]输入,直接输入test.avi即可,且把该视频文件放在和项目属性表一层的文件夹中即可。
功能:设置CvCapture对象的各种属性
参数:CV_CAP_PROP_POS_FRAMES表示以帧数来设置读入位置,视频长度比例则是AVI_RATIO代替FRAMES,传入新的滚动条位置
cvGetCaptureProperty( g_capture, CV_CAP_PROP_FRAME_COUNT );
功能:查询CvCapture对象的各种数据
参数:CV_CAP_PROP_FRAME_COUNT,CV_CAP_PROP_POS_FRAMES,CV_CAP_PROP_FPS
返回:返回视频的总帧数,返回当前帧数,帧率
cvCreateTrackbar( “Position”, “Example3”, &g_slider_position, frames, onTrackbarSlide );
功能:创建滚动条
参数:滚动条名称,所属窗口,对象,滚动最大值,滚动条被拖动时触发的回调函数
ex2-4载入图像平滑处理(简单)
cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 3 );//当前图像是3通道,每个通道8位,图像大小同image
功能:分配自己的图像结构空间
参数:CvSize结构体,各通道每个像素点的数据类型,通道总数
cvGetSize(image);
cvSize( img->width/2,img->height/2 );
功能:得到CvSize结构
cvSmooth( image, out, CV_GAUSSIAN, 5,5 );
功能:平滑处理,每个像素周围5*5区域进行高斯平滑处理
ex2-5缩放图像(有点bug)
IPL_GAUSSIAN_5x5应该改为CV_GAUSSIAN_5x5,否则找不到
ex2-6边缘检测(简单)
cvCvtColor(img_rgb, img_gry ,CV_BGR2GRAY);cvCanny( in, out, lowThresh, highThresh, aperture );
ex2-7,2-8组合操作(简单)
ex2-9从摄像设备读入图像(困难)
摄像头很难打开,要更新驱动程序,各种方法都试过了,看来win7对于cvCreateCameraCapture(0);和cvCaptureFromCAM(0);都不支持啊不过还是有其他的方法可以打开摄像头,现在的知识还不够,可以用mat类的东西。
ex2-10写入AVI(简单)
CvVideoWriter* writer = cvCreateVideoWriter( argv[2], CV_FOURCC('D','X','5','0'), fps, size );功能:新建视频文件
参数:指定新建视频文件的名称,视频压缩的编码格式DX50而Opencv用宏CV_FOURCC指定编码格式,帧率,图像大小
总而言之
从这10个例子可以粗略了解opencv,不必花太多的时间,特别是第9个例子,由于硬件的关系走很多弯路都是没有帮助的,后面会学到更厉害的东西,不要停下来。需要源码的同学可以在下方评论,我比较懒,就先不上传各个例子的源码了。
- opencv学习(一)书本《学习Opencv》(中文版)的第二章的10个入门样例的分析
- opencv学习(二)书本《学习Opencv》(中文版)第二章的习题试着做做(opencv3.0.0+VS2012+win7)
- opencv学习(六)书本《学习Opencv》(中文版)第四章的作业答案第二题(opencv3.0.0+VS2012+win7)
- opencv学习(三)书本《学习Opencv》(中文版)第四章的样例Ex4-1(opencv3.0.0+VS2012+win7)
- opencv学习(四)书本《学习Opencv》(中文版)第四章的样例Ex4-2(opencv3.0.0+VS2012+win7)
- opencv学习(五)书本《学习Opencv》(中文版)第四章的作业答案第一题(opencv3.0.0+VS2012+win7)
- 【读书笔记】学习OpenCV(中文版)第二章
- opencv 学习第二天 学习opencv(中文版)对一幅图片进行高斯平滑
- opencv 学习第二天 学习opencv(中文版)对一幅图片进行canny边缘检测
- 【学习OpenCV】第二章 OpenCV入门
- [openCV] opencv学习笔记-入门(25)Mat 的学习
- 关于学习OpenCV中文版中第二个程序—播放AVI视频犯的几个错误及解决方法
- 学习opencv中文版心得 第二章 例2-1
- 对 学习OpenCV(中文版) 第三章的总结
- 学习OPENCV(中文版)遇到的问题和解决方法
- opencv 学习第三天 学习opencv(中文版) cvmat矩阵的操作
- opencv 学习第四天 学习opencv(中文版) 总结一下opencv的图像视频的简单应用
- 学习OpenCV(中文版)
- IntelliJ 出现 cannot resolve symbol.
- Android Studio 报No resource found that matches the given name '@style/Theme.AppCompat.Light'.
- X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
- StringUtils工具类用法
- Android命令
- opencv学习(一)书本《学习Opencv》(中文版)的第二章的10个入门样例的分析
- poj 1797 Heavy transportation 最短路
- Java File类学习笔记4:自定义一个类,过滤指定扩展名的文件
- SPOJ COT - Count on a tree树链剖分加主席树
- spring mvc controller取到的中文参数是乱码
- Java:按值传递还是按引用传递详细解说
- iOS button 同时设定图片和文字
- Makefile经典教程(掌握这些足够)
- qt 编程 hello-world