OpenCV具有以下的特征ppt课件.ppt
《OpenCV具有以下的特征ppt课件.ppt》由会员分享,可在线阅读,更多相关《OpenCV具有以下的特征ppt课件.ppt(47页珍藏版)》请在三一办公上搜索。
1、OpenCV简介,OpenCV的特征,OpenCV具有以下的特征:()开源计算机视觉采用编写。()使用目的是开发实时应用程序。()独立与操作系统、硬件和图形管理器。()具有通用的图象视频载入、保存和获取模块。()具有底层和高层的应用开发包。,OpenCV的功能,应用OpenCV能够实现以下功能:()对图象数据的操作,包括分配、释放、复制和转换数据。()对图象和视频的输入输出,指文件和摄像头作为输入,图象和视频文件作为输出。()具有对距陈和向量的操作以及线性代数的算法程序,包括距阵、解方程、特征值以及奇异值。()可对各种动态数据结构,如列表、队列、集合、树和图等进行操作。()具有基本的数字图象处
2、理能力,如可进行滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图和图象金字塔等操作。,()可对各种结构进行分析,包括连接部件分析、轮廓处理、距离变换、各种距的计算、模板匹配、Hongh变换、多边形逼近、直线拟合、椭圆拟合和Delaunay三角划分等。(7)对摄像头的定标,包括发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计和立体对应。(8)对运动的分析,如对光流、运动分割和跟踪的分析。(9)对目标的识别,可采用特征法和隐马尔科夫模型(HMM)法。(10)具有基本的GUI功能,包括图像与视频显示、键盘和鼠标事件处理及滚动条等。(11)可对图像进行标注,如对线、二次曲线和多边形
3、进行标注,还可以书写文字(目前之支持中文)。,OpenCV模块,OpenCV包括以下几个模块,其具体功能是:(1)CV主要的OpenCV函数。(2)CVAUX辅助的(实验性)OpenCV函数。(3)CXCORE数据结构与线性代数支持。(4)HIGHGUI图像界面函数。(5)ML机器学习,包括模式分类和回归分析等。(6)CVCAM负责读取摄像头数据的模块(在以后版本中,当HIGHGUI模块中加入Direct Show支持后,此模块将被废除)。,学习资源,目前,OpenCV方面的资源已经很多,当然最简单的方法还是在网上搜索,比如在Google搜索引擎(http:/)中输入”OpenCV”即可进行相
4、关查找,这里给出一些信息作为参考。(1)参考手册 英文 请打开文件/docs/index.htm进行查询。 中文 请打开网页http:/ 官方网站 网址是http:/ 中文官方网站 网址是http:/ 软件下载 网址是http:/ 请阅读北京航空航天大学出版社出版的OpenCV教程。,OpenCV基础,.OpenCV命名规则.基本数据结构.矩阵的使用与操作.图象的使用与操作.数据结构与数据操作,OpenCV命名规则,1.函数命名规则 通用函数名为 cvActionTargetMod() 其中,Action表示核心函数(比如:Set,Create); Target表示目标图像区域(比如:轮廓,多
5、边形); Mod表示可选变种(比如:变量类型)。2.矩阵数据类型 通用矩阵数据类型为 CV_ 其中,S表示带符号整数; U表示无符号整数; F表示浮点数。 例如:CV_8UC1表示8位无符号单通道矩阵; CV_32FC2表示32位浮点数双通道矩阵。,3.通用图像数据类型为 IPL_DEPTH_(S|U|F) 其中,S,U,F的意义同矩阵数据类型。 例如:IPL_DEPTH_8U表示8位无符号整数图像 IPL_DEPTH_32F表示32位浮点数图像4.头文件OpenCV的头文件有如下几个:#include#include#include#include/不是必须的,它包含在cv.h中,基本的数据
6、结构,1.图像结构2.矩阵的与向量结构3.其他的数据结构(1)点的表示(2)长方形维数的表示(3)有偏移量的长方形表示,图像结构,Opencv中的所有图像都采用同一个结构IplImage,该图像结构说明参考后面的PPT。实际上, IplImage是借鉴于Intel公司最早发布的IPP图像处理开发包中的定义;但由于IPP并非开源项目,因此对于OpenCV基本采用这个较复杂的图像结构,其版权方面的问题还有待研究。,矩阵与向量结构,矩阵与向量结构的 和说明也可以参见后面的PPT。OpenCV采用一种独特的结构CvArr*。该结构是一个通用数组的表现形式,用做函数的参数,说明函数在调用该参数时接受多种
7、类型的输入数据形式,比如IplImage*,CvMat*甚至CvSeq*。具体的数组形式在运行时应根据实际情况来分析。,其他数据结构,(1)点的表示:CvPoint p=cvPoint(int x,int y);CvPoint2D32f p=cvPoint2D32f (float x,float y);CvPoint3D32f p=cvPoint3D32f (float x,float y,float z);Eg:p.x=5.0p.y=5.0,(2)长方形的维数表示:CvSize r=cvSize(int width,int height);CvSize2D32f r=cvSize2D32f(
8、float width,float height);(3)有便移量的长方形表示Cvrectrcvrect (int x,int y,int width,int height);,矩阵的使用和操作,.分配和释放矩阵OpenCV有一个矩阵操作的语言的接口,另外也有一些语言的矩阵操作接口,通常语言接口更方便,且同样有效。在OpenCV中,向量是被当成是行或列为的矩阵,并且矩阵在内存中的存储方式是按行存储,且每行按字节对齐。,(1)分配矩阵分配矩阵的原型为CvMat * cvCreateMat(int rows,int cols,int type);其中,type 表示矩阵元素的类型,可以用如下形式表
9、达CV_(S|U|F)CEg:CvMat* M = cvCreateMar(4,4CV_32FC1);(2)释放矩阵释放矩阵的函数原型为Void cvReleaseMat(CvMat*);Eg:CvMat* M = cvCreateMat(4,4,CV_32FC1);cvReleaseMat(,(3)复制矩阵复制矩阵的函数原型为CvMat* cvCloneMat(cvMat);Eg:CvMat* M1 = cvCreateMat(4,4,CV_32FC1);CvMat* M2;M2 = cvCloneMat(M1);(4)初始化矩阵可按如下方法初始化一个行列矩阵。Double a = 1,2,
10、3,4, 5,6,7,8, 9,10,11,12;CvMat Ma = cvMat(3,4,CV_64FC1,a);或者:CvMat Ma;CvInitMatHeader(,(5)初始化单位矩阵可按如下方法初始化一个单位矩阵。CvMat* M = cvCreateMat(4,4,CV_32FC1);cvSetIdentity(M);,访问矩阵元素,直接访问下例是对元素M(i,j)进行数据赋值和读取。cvmSet(M,I,j,2,0); /set M(i,j)t = cvmGet(M,i,j); /Get M(i,j)(2)已知对齐方式的直接访问下例是对32位对齐方式存储的元素进行赋值。CvMa
11、t* M = cvCreateMat(4,4CV_32FC1);int n = M-cots;float * data = M-data.fl;Datai*n+j = 3.0;,(3) 未知对齐方式的直接访问下例是对某种对齐方式存储的元素进行赋值。CvMat* M = cvCreateMat(4,4CV_32FC1);int step = M-step/sizeof(float);float * data = M-data.fl;(data + i*step) i= 3.0; (4)直接访问一个已初始化的矩阵下例对已出吃化的矩阵a进行数据赋值。Double a16;CvMat Ma = cvM
12、at(3,4,CV_64FC1,a);Ai*4+j = 2.0; /Ma(i,j) = 2.0;,矩阵的向量操作,对矩阵和向量的操作分以下几种类型。(1)矩阵与矩阵之间的操作此类型包括:CvMat* Ma,*Mb,*Mc;cvAdd(Ma,Mb,Mc); /Ma+Mb-MccvSub(Ma,Mb,Mc); /Ma-Mb-MccvMatMul(Ma,Mb,Mc); /Ma*Mb-Mc,(2)矩阵元素之间的操作此类型包括:CvMat* Ma,*Mb,*Mc;cvMul(Ma,Mb,Mc); /Ma.*Mb-MccvDiv(Ma,Mb,Mc); /Ma./Mb-MccvAddS(Ma,cvScala
13、r(-10.0),Mc); /Ma.-10-Mc(3)向量乘法操作此类型包括:double va=1,2,3;double vb=0,0,1;double vc3;CvMat Va = cvMat(3,1,CV_64FC1,va);CvMat Vb = cvMat(3,1,CV_64FC1,vb);CvMat Vc = cvMat(3,1,CV_64FC1,vc);double res = cvDotProduct( /cross product:Va*Vb-Vc注意VA,VbVc在叉积中必须是个元素的向量。,(4)单个矩阵的操作此类型包括:CvMat *Ma,*Mb;cvTranspose(
14、Ma,Mb);CvScalar t = cvTrace(Ma0;Double d = cvDet(Ma);cvInvert(Ma,Mb);(5)非齐次线性系统求解操作此类型包括:CvMat* A = cvCreateMat(3,3,CV_32FC1);CvMat* x = cvCreateMat(3,3,CV_32FC1);CvMat* b = cvCreateMat(3,3,CV_32FC1);cvSolve(,(6)特征值分析(对称矩阵)操作此类型包括:CvMat* A= cvCreateMat(3,3,CV_32FC1);CvMat* E= cvCreateMat(3,3,CV_32FC
15、1);CvMat* I= cvCreateMat(3,3,CV_32FC1);cvEigenVV(,图象的使用与操作,分配和释放图象(1)分配一幅图象分配图象的函数原型为IplImage* cvCreateImage(CvSize size,int depth,int channels);Eg1:IplImage* img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);Eg2:IplImage* img2=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);,(2)释放一幅图象释放图象的函数原型为Void
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenCV 具有 以下 特征 ppt 课件

链接地址:https://www.31ppt.com/p-1376577.html