快速了解OpenCV-简介和两个例子PPT课件

上传人:每**** 文档编号:66975553 上传时间:2022-03-29 格式:PPT 页数:29 大小:1MB
返回 下载 相关 举报
快速了解OpenCV-简介和两个例子PPT课件_第1页
第1页 / 共29页
快速了解OpenCV-简介和两个例子PPT课件_第2页
第2页 / 共29页
快速了解OpenCV-简介和两个例子PPT课件_第3页
第3页 / 共29页
点击查看更多>>
资源描述
2021/6/71Contentsv一、一、 OpenCV简介与特点简介与特点v二、命名规则二、命名规则v三、三、 OpenCV模块与功能模块与功能v四、例子:鼠标绘图四、例子:鼠标绘图2021/6/72Opencv简介简介v由一系列由一系列 C C 函数和少量函数和少量 C+ C+ 类构成类构成v实现了图像处理和计算机视觉方面的很多通用算法。实现了图像处理和计算机视觉方面的很多通用算法。v包括包括 300 300 多个多个C C函数的跨平台的中、高层函数的跨平台的中、高层 APIAPI。v它不依赖于其它的外部库它不依赖于其它的外部库尽管也可以使用某些外部尽管也可以使用某些外部库。库。 Intel Open Source Computer Vision Library2021/6/73vMatlab,IPL, CxImage 效率/速度Opencv注重速度商业化Matlab 适合研究,仿真仿真质量费用与源代码编程与安装配置2021/6/74OpenCV特点特点Intel Open Source Computer Vision LibraryOpenCVOpenCV的几个显著优点:的几个显著优点:跨平台跨平台, ,移植性好:移植性好:Windows, Linux, Mac OSWindows, Linux, Mac OSOpenOpen:免费,且源代码公开:免费,且源代码公开实时性,商业化:代码优化,速度快实时性,商业化:代码优化,速度快使用方便使用方便缺点:缺点:BugBug,安装配置麻烦,安装配置麻烦2021/6/75OpenCV 功能功能v图像图像/ /视频的读写视频的读写v数字图像的处理数字图像的处理v目标识别与跟踪目标识别与跟踪v3D3D重建与标定重建与标定DFT灰度图灰度图canny边沿检测边沿检测Harr小波变换小波变换人脸检测人脸检测2021/6/76二二. OpenCV的命名规则的命名规则 OpenCVOpenCV中使用大小写混合样式来标识外部函数、中使用大小写混合样式来标识外部函数、数据类型和类方法。数据类型和类方法。v外部外部函数使用前缀函数使用前缀cvcv:cvCreateImagecvCreateImagev内部函数使用前缀内部函数使用前缀IcvIcvv数据结构数据结构(C(C结构体、枚举、联合体、类结构体、枚举、联合体、类) )使使用用前缀前缀CvCv:CvSizeCvSize,CvPointCvPointv外部或某些内部外部或某些内部宏使用前缀宏使用前缀CV_CV_:CV_DEPTH_8UCV_DEPTH_8Uv内部宏使用前缀内部宏使用前缀ICV_ICV_2021/6/77(1)函数名)函数名: cvActionTargetMod(.) vAction = 核心功能核心功能 (e.g. set, create) vTarget = 目标图像区域目标图像区域 (e.g. contour, polygon)vMod = (可选的)调整语可选的)调整语 (e.g. argument type) e.g.: cvGet2D、cvCreateImage、cvNamedWindowcv+算法算法/对象:对象:cvSobel, cvCanny, cvRodrigues, cvSqrt, cvGoodFeaturesToTrackcv+容器元素容器元素+动作名动作名 OpenCV 命名规则命名规则2021/6/78(2)内部宏数据类型:)内部宏数据类型:矩阵数据类型矩阵数据类型:CV_(S|U|F)CS = 符号整型符号整型 U = 无符号整型无符号整型 F = 浮点型浮点型E.g.: v CV_8UC1 :一个:一个8位无符号整型单通道矩阵位无符号整型单通道矩阵vCV_32FC2:一个:一个32位浮点型双通道矩阵位浮点型双通道矩阵图像数据类型图像数据类型: IPL_DEPTH_(S|U|F)vIPL_DEPTH_8U 图像像素数据是图像像素数据是8位无符号整型位无符号整型.v IPL_DEPTH_32F图像像素数据是图像像素数据是32位浮点型位浮点型.鼠标事件:鼠标事件:event=CV_EVENT_BUTTONvCV_EVENT_LBUTTONUP,CV_EVENT_RBUTTONDOWN vCV_EVENT_LBUTTONDBLCLK2021/6/79v(3).数据结构数据结构: CvMat(矩阵),(矩阵),CvPoint(点点),CvSize(矩形框矩形框)v(4).头文件头文件:#include #include #include #include #include / 一般不需要,一般不需要,cv.h 内已包内已包 /含该头文件含该头文件2021/6/710三三. OpenCV模块模块vcv cv 核心函数库核心函数库vcxcore cxcore 数据结构与线性代数库数据结构与线性代数库vcvaux cvaux 辅助函数库辅助函数库vhighgui GUIhighgui GUI函数库函数库 vml ml 机器学习函数库机器学习函数库2021/6/711cxcore数据结构数据结构矩阵矩阵/ /向量操作及线性代数运算:矩阵乘积、矩阵方程求向量操作及线性代数运算:矩阵乘积、矩阵方程求解、特征值、奇异值分解解、特征值、奇异值分解离散变换:离散变换:DFTDFT,离散余弦变换,离散余弦变换内存管理:内存分配与释放,图像复制、设定和转换内存管理:内存分配与释放,图像复制、设定和转换 动态结构:链表、队列、数据集、树、图动态结构:链表、队列、数据集、树、图 绘图函数:曲线,形状,文本,点集绘图函数:曲线,形状,文本,点集错误处理错误处理2021/6/712基本数据结构基本数据结构v点:点:CvPoint, CvPoint2D32f, CvPoint3D32fCvPoint, CvPoint2D32f, CvPoint3D32fv矩形框:矩形框:CvSizeCvSize,CvSize2D32f CvSize2D32f ,CvRect CvRect v矩阵:矩阵:CvMat,CvMat, CvMatND , CvSparseMat CvMatND , CvSparseMat ,CvArrCvArr* *v向量:向量:CvScalarCvScalarvIPLIPL图像:图像:IplImageIplImage(一个(一个channelchannel是一个是一个CvMat CvMat )2021/6/713 CvPoint3D32fCvPoint2D32f点点2021/6/714矩形与向量矩形与向量CvSizeCvSize2D32f CvRectCvScalar可存放在可存放在1至至4个捆绑数据的容器个捆绑数据的容器 2021/6/715矩阵矩阵2021/6/716IPLIPL图像数据结构图像数据结构IplImage* image = cvCreateImage( cvSize(width, height), depth,channel );2021/6/717cv基本图像处理(去噪、边缘检测、角点检测、采样基本图像处理(去噪、边缘检测、角点检测、采样与插值、色彩变换、形态学处理、直方图、图像金与插值、色彩变换、形态学处理、直方图、图像金字塔结构)字塔结构)结构分析(连通域结构分析(连通域/ /分支、轮廓处理、距离转换、图分支、轮廓处理、距离转换、图像矩、模板匹配、霍夫变换、多项式逼近、曲线拟像矩、模板匹配、霍夫变换、多项式逼近、曲线拟合、椭圆拟合、狄劳尼三角化)合、椭圆拟合、狄劳尼三角化) 运动分析和目标识别(光流、动作分割、目标跟踪,运动分析和目标识别(光流、动作分割、目标跟踪,特征方法、特征方法、HMMHMM模型)模型) 摄像头定标与摄像头定标与3D3D重构(寻找和跟踪定标模式、参数重构(寻找和跟踪定标模式、参数定标、基本矩阵估计、单应矩阵估计、立体视觉匹定标、基本矩阵估计、单应矩阵估计、立体视觉匹配)配) 2021/6/718e.g.:去噪v使用扩展使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差算子计算一阶、二阶、三阶或混合图像差分分 :void cvSobel(); v采用采用 Canny 算法做边缘检测算法做边缘检测 void cvCanny();vHarris角点检测角点检测 void cvCornerHarris();v计算图像的计算图像的 Laplacian 变换变换 :2021/6/719IO/GUI (highgui)图形用户界面:图形用户界面:v处理窗口事件处理窗口事件e.g.: cvNamedWindow() e.g.: cvNamedWindow() v处理滑动条事件处理滑动条事件e.g.:cvGetTrackbarPos()e.g.:cvGetTrackbarPos()v处理鼠标处理鼠标/ /键盘输入事件键盘输入事件e.g.:cvWaitKey()e.g.:cvWaitKey()读取与显示图像读取与显示图像 e.g.: cvShowImage() e.g.: cvShowImage()视频读写函数视频读写函数 e.g.e.g.: cvCaptureFromCAM()cvCaptureFromCAM()实用函数与系统函数实用函数与系统函数2021/6/720highgui示例示例#include cv.h#include highgui.h int main( int argc, char* argv ) IplImage *frame; CvCapture *capture = cvCaptureFromAVI(1.avi); if( !capture)printf( Can not open video file 1.avin);return -1;cvNamedWindow(avi_output,1 );程序运行演示程序运行演示2021/6/721vwhile(frame = cvQueryFrame(capture)vvcvShowImage(avi_output,frame);vif( cvWaitKey(2) = 0 )vbreak;vvcvWaitKey();vcvDestroyWindow(avi_output);v cvReleaseImage( &frame );v cvReleaseCapture( &capture );v程序运行演示程序运行演示2021/6/722cvaux立体视觉立体视觉通过立体视觉来实现的动作识别通过立体视觉来实现的动作识别基于轮廓线的形状匹配基于轮廓线的形状匹配模式识别模式识别一维和二维隐马尔可夫模型一维和二维隐马尔可夫模型纹理描述纹理描述2021/6/723四四. 例子:鼠标绘图例子:鼠标绘图v#include stdafx.hv#include cv.hv#include highgui.hv#include v#include v vIplImage* inpaint_mask = 0, img0 = 0, *img = 0, *inpainted = 0;vCvPoint prev_pt = -1,-1;v vvoid on_mouse( int event, int x, int y, int flags, void* zhang)vv if( !img )v return;v if( event = CV_EVENT_LBUTTONUP | !(flags & CV_EVENT_FLAG_LBUTTON) )v prev_pt = cvPoint(-1,-1);2021/6/724v else if( event = CV_EVENT_LBUTTONDOWN )v prev_pt = cvPoint(x,y);v else if( event = CV_EVENT_MOUSEMOVE & (flags & CV_EVENT_FLAG_LBUTTON) )v v CvPoint pt = cvPoint(x,y);v if( prev_pt.x = 2 ? argv1 : (char*)fruits.jpg;v v if( (img0 = cvLoadImage(filename,-1) = 0 )v return 0;v v printf( Hot keys: nv tESC - quit the programnv tr - restore the original imagenv ti or ENTER - run inpainting algorithmnv tt(before running it, paint something on the image)n );2021/6/726v cvNamedWindow( image, 1 );v v img = cvCloneImage( img0 );v inpainted = cvCloneImage( img0 );v inpaint_mask = cvCreateImage( cvGetSize(img), 8, 1 );v v cvZero( inpaint_mask );v cvZero( inpainted );v cvShowImage( image, img );v cvShowImage(inpaint mask, inpaint_mask );v cvSetMouseCallback( image, on_mouse, 0 );v 2021/6/727v for(;)v v int c = cvWaitKey(0);if( (char)c = 27 )v break;if( (char)c = r )v cvZero( inpaint_mask );v cvCopy( img0, img,0 ); cvShowImage( inpaint mask, inpaint_mask );v cvShowImage( image, img );v v if( (char)c = i | (char)c = n )v cvNamedWindow( inpainted image, 1 );v cvInpaint( img, inpaint_mask, inpainted, 3, CV_INPAINT_TELEA );v cvShowImage( inpainted image, inpainted );v v v return 1;v程序运行演示程序运行演示2021/6/728部分资料从网络收集整理而来,供大家参考,感谢您的关注!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!