- 339
- 0
- 约6.99千字
- 约 15页
- 2017-08-03 发布于广东
- 举报
Opencv教程(基础篇).ppt
Opencv教程(基础篇) 报告人:姜 涛 第二章 opencv入门 第三章 opencv基础 第四章 数据结构与数据操作 第五章 模式识别与图像处理 第六章 运动物体跟踪 1.cvLoadImage 函数原型:IplImage* cvLoadImage( const char* filename, int flags ); filename :要被读入的文件的文件名(包括后缀); flags :指定读入图像的颜色和深度: cvLoadImage( filename, CV_LOAD_IMAGE_ANYCOLOR= -1 ); 默认读取图像的原通道数 cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE= 0 ); 强制转化读取图像为灰度图 cvLoadImage( filename, CV_LOAD_IMAGE_COLOR= 1 ); 读取彩色图 2.cvSaveImage( const char* filename, const CvArr* image );保存图像到文件 filename 文件名。 image 要保存的图像。 例2-1;图像的读入与显示 3..Mahalanobis计算两个向量之间的马氏距离(Mahalanobis distance) double cvMahalanobis( const CvArr* vec1, const CvArr* vec2, CvArr* mat ); 第二章 opencv 入门 3.6视频的使用与操作 1.对摄像头的捕捉 CvCapture* capture = NULL; capture = cvCaptureFromCAM(0); //从摄像头读取视频 2.对文件的捕捉 CvCapture* capture = NULL;capture = cvCaptureFromAVI(tree.avi); 3.捕捉某一帧 IplImage* frame = 0;frame = cvQueryFrame( capture ); 4.释放捕捉源 cvReleaseCapture( capture ); 例3-5从摄像头或AVI文件扑捉视频流并进行边缘检测 用到的函数 1.void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1,CvArr* dst2, CvArr* dst3 ); 作用是:分割多通道数组成几个单通道数组或者从数组中提取一个通道 2. void cvMerge( const CvArr* src0, const CvArr* src1,const CvArr* src2, const CvArr* src3, CvArr* dst ); 作用是:从几个单通道数组组合成多通道数组或插入一个单通道数组 3. colorlaplace-origin = frame-origin;显示图像的时候 正反 例3-5视频流边缘检测 Laplace边缘检测 void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 ); 例4-6K聚类算法 KMeans2 按照给定的类别数目对样本集合进行聚类 cvKMeans2( points, cluster_count,clusters, cvTermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0 )); 例5-1Canny边缘检测 Canny采用 Canny 算法做边缘检测 //void cvCanny( const CvArr* image, CvArr* edges, double threshold1,double threshold2, int aperture_size=3 ); //函数 cvCanny 采用 CANNY 算法发现输入图像的边缘而且在输出图像中标识这些边缘。 //threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。 Canny算法的核心包括下面几个步骤: 1.用高斯滤波器平滑图像。 2.用一阶偏导的有限差分计算梯度的幅值和方向。 3.对梯度幅值进行非极大值抑制。 4.用双阈值算法检测和连接边缘。 5.采用高斯平滑函数。 例5-2角点检测 //函数 GoodF
原创力文档

文档评论(0)