实例介绍
OpenCV中文参考文件,应用程序接口(API)中文参考资料
al OpenCV参考手册 ·ΩpencⅤ编程简介(矩阵/图像/姒频的基本·Ω中文参考手册 读写操作)入门必读 · OpenCV概述 1.图像处理 2.结构分析 CXCore中文参考手册 3.运动分析与对象跟踪 4.模式识别 1.基础结构 5.照相机定标和三维重建 2.数组操作 3.动态结构 HgGU中文参考手册 4.绘图函数 5.数椐保存和运行时类型信息 1. HighGUI概述 6,其它混合函数 2.简单图形界面 7.錯误处理和系统函数 3.读取与保存图傯 4.视频读写数 机器学习中文参考手册 5.实用涵数与系统函数 OpencⅤ编码样式指南(阅读 Opencv代码前必 CIMage类参考手册 读 CiMage中的陷阱和BUG OpenCV的Phon接口 Opengν编程简介(矩阵/图像/视频的基本读写操 作) Wikipedia,自由的百科全书 Introduction to programming with OpenCV Opencv编程简介 作者: Gady Agam Department of Computer Science January 27, 2006 Illinois Institute of Technology Url:http://www.cs.it.edu/ragam/cs512/lect-notes/opency-intro/opency- intro. html#SECTION00040000000000000000 翻译: chenyusiyuan January 26, 2010 .http:/blog.csdn.net/chenyusiyuan/archive/2010/01126/5259060.aspx 摘要:本文旨在帮助读者快速入门 Openc,而无需阅读冗长的参考手册。掌握了 Opencv的以下基础知识 后,有需要的话再查阅相关的参考手册。 目录 [原] 1二、简介 o1.11、 Openc的特点 1.1.1(1)总体描述 (2)功能 113(3) OpenCv模块 122、有用的学习资源 2.1(1)参考手册; 122(2)网络资源 1.23(3)书籍 124(4)视瓶处理例程(在< openly-root>/ samples/c/) 125(5)图像处理例程(在< openly-root>/ samples/c/ 0133、 openc命名规则 2(2)矩阵数据类型: ■1.33(3)图像数据类型 134(4)头文件: o144、编译建议 .14.1(lInux; 1.4.2(2) Windows o155、C例程 2二、GUI指令 2.11、窗口管理 2.1.1(1)创建和定位一个新窗口∶ 2.12(2)载入图像 2.13(3)显示图後 2.14(4)关团窗口 2.15(5)改变窗 o222、输入处理 2.2.1(1)处理鼠标事件 222(2)处理键盘事件 ■2.23(3)处理滑动条事件 ·3三、 OpenCV的基本数据结构 o3.11、图像数据结构 3.1.1 322、知阵与向量 3.2,1(1)矩阵 3232).元批 333、其它结构类型 33.1(1)点 332(2)矩框大小(以像素为精度)∵ ■333(3)矩形框的偏置和大 4四、图像处理 4,11、图像的内存分配与释放 411(1)分配内存给一幅新图像 4.1.2(2)释放图像 ■4.13(3)复制图像 414(4)设置/获取感兴趣区域ROI 415〈5)设置/获取感兴趣通道COI 422、图像读写 4.2,1(1)从文件中读入图像 4.2.2(2)保存图 o433、访回图像像素 4.3.1(1)假设你要访间第k通道、 翦列的像素 43,2(2)间接访间;(通用,但效 可访间任意格式的图像) 433(3)直接访间:(效率高,但容易岀错) 434(4)基于指针的直接访闻:(简单高效 435(5)基于c++ wrapper的直接访间 (更简单高效 a444、图像转换 441(1)字节型图像的灰度-彩色转换 442(2)彩色图像->灰度图像 44 不同彩色空间之间的转換 a455、绘图指令 4.5,1(1)绘制矩形 452(2)绘制圆形 45.3(3)绘制线段 454(4)绘制一组线段 455(5)绘制组填充颜色的多边形: 456(6)文本标注 5五、矩阵处理 o5,11、矩阵的内存分配与释放 32(3) 为新矩阵分配达存 释放矩阵内存 514(4)复制矩阵 5,15(5)初始化矩阵 5.1.6(6)初始化矩阵为单位矩阵 522、访回矩阵元焘 52.1(1)假设需要访间一个2D浮点型矩阵的第(i,j个单元, 5.2.2(2)间接访间 5.23(3)直接访间(假设矩阵数据按4宰节行对齐) 524(4)直接访间(当数据的行对齐可能存在间隙时 possible alignment gaps) 5,25(5)对于初始化后的矩阵进行直接i °533、矩阵/向量运算 5.3,1(1)矩阵之间的运算 532(2)矩阵之间的元素级运算: 53,3(3)向量乘积 534(4)单一矩阵的运 535(5)非齐次线性方程求解 ■536(6)特征債与特征向量(矩阵为方阵) 6六、视频处理 611、从视频流中捕捉一帧画面 61.2(2)Y支从摄像头或视频文件(AM格式)中捕捉帧画面 6,11(1)open 个摄像头捕捉器 6,1,3(3)初始化一个祕频文件捕捉器 614(4)捕捉一帧画面 61.5(5)释放视频流捕捉 o622、获取/设置视频流信息 6,2.1(1)获取视频流设备信息 6,2,2(2)获取帧图信息 6,23(3)设置丛视频文件抓取的第一帧画而的位置∵ 633、保存视频文件 6.3,1(1)初始化视频编写器 6.3,2(2)保持视频文件 6 3)释放视频编写器 [编辑] 简介 [编辑] 1、 OpenCV的特点 [编辑] (1)总体描述 · Opencv是一个基于CC++语言的开源图像处理函数库 其代码都经过优化,可用于实时处理图像 具有良好的可移植性 可以进行图像/视频载入、保存和采集的常规操作 具有低级和高级的应用程序接口(API ·提供了面向 Intel IPP高效多媒体函数库的接口,可针对你使用的 Intel CPU优化代码,提高程序性能(译 注: OpenC2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口) [编辑 (2)功能 图像数据操作(内存分配与释放,图像复制、设定和转换) Image data manipulation (allocation, release, copying, setting, conversion ·图像/视频的输入输出(支持文件或摄像头的输入,图像/视频文件的输出) Image and video I/o (file and camera based input, image/video file output). 矩阵/向量数据操作炇线性代数运算(矩阵乘积、矩阵方程求解、特征值、奇异值分解) Matrix and vector manipulation and linear algebra routines(products, solvers, eigenvalues, SVD) 支持多种动态数据结构(链表、队列、数据集、树、图) Various dynamic data structures(lists, queues, sets, trees, graphs) ·基本图像处理(去噪、边缘检测、角点检测、采样与插值、色彩变換、形态学处理、直方图、图像金字 塔结构) Basic image processing(filtering, edge detection, corner detection, sampling and interpolation, color conversion, morphological operations, histograms, image pyramids) ·结构分析(连通域/分支、轮廓处理、距离转换、图像矩、模板匹配、霍夫变换、多项式逼近、曲线拟 合、椭圆拟合、狄劳尼三角化) Structural analysis(connected components, contour processing distance transform, various moments template matching, Hough transform, polygonal approximation, line fitting, ellipse fitting, Delaunay triangulation). ·摄像头定标(寻找和跟踪定标模式、参数定标、基本矩阵估计、单应矩阵估计、立体视觉匹配) Camera calibration(finding and tracking calibration patterns, calibration, fundamental matrix estimation, homography estimation, stereo correspondence). ·运动分析(光流、动作分割、目标跟踪) Motion analysis(optical flow, motion segmentation, tracking) 目标识别(特征方法、HMM模型 Object recognition(eigen-methods HMM) 基本的GUI(显示图像/视频、键盘/鼠标操作、滑动条) Basic Gui (display image/ video keyboard and mouse handling, scroll-bars) 图像标注(直线、曲线、多边形、文本标注) Image labeling(line, conic, polygon, text drawing [编辑] (3) Opencvi模块 cv-核心函数库 Vaux-辅助函数库 :e0机数线性代数作 m|-机器学习函数库 [编辑] 2、有用的学习资源 [编辑] (1)参考手册: < opencv-root>/ docs/index. htm(译注:在你的 OpenCV安装目录< opencv-root>内) [编辑] (2)网络资源: Etkmi:http:/www.intel.com/technology/computing/opencvl [编辑] (3)书籍: Open Source Computer Vision Library by Gary R Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006) chenyusiyuan:补充以下书籍 Learning OpenCV -Computer Vision with the OpenCV Library by Gary Bradski Adrian Kaehler, O Reilly Media, 1 st ed(September, 2008) OpenCv教程——一基础篇 作者:刘瑞祯于仕琪,北京航空航天大学出版社,出版日期:200706 (4)视频处理例程(在< opencv-root>/ samples/c/): ·颜色跟踪: camshiftdemo 点跟踪:| kemo 动作分割: motel 边缘检测: laplace [编辑] (5)图像处理例程(在< opencv-root>/ samples/c/) 边缘检测:edge 图像分割: pyramid_ segmentation 形态学: morphology 直方图: demist 距离变换: distrains 椭圆拟合: fitellipse [编辑] 3、 OpenCv命名规则 [编辑] (1)函数名 CvActionTargetMod(.) Act⊥cn=核 e functionality)(e.g. set, create) Target target image area) (e, g. contour, polygon) Mod ih (optional modifiers) (e.g. argument type) [编辑] (2)矩阵数据类型: CV_<bit_depth>(SIUIF)C<number_of_channels> s=符号整型 U E,q.:Cv_8UC1是指_个8位无符号整型单通道矩阵 CV 32FC2 是指一个32位浮点型双道道矩阵 [编辑] (3)图像数据类型: IPL_DEPTH_<bit_depth(SUIE) E.9:B1 DEPTH8D图像像萎数据是8位符号型 [编辑] (4)头文件 #include < cv.h> ⊥nc1ude< VAux.h> include <highqui..h> inc⊥ ude <rm1,h> sinclude <cxcore.h> /一般不需要,cv,h内已包含该头文件 [编辑] 4、编译建议 [编辑] (1)Linux: g++ helloworld. cpp-o hello-world I /usr/local/include/opencv -L /usr/local/lib lm-Icv-highqui-Icvaux [编辑] (2)Windows 在Ⅵ visual studio的选项和项目牛设置好 OpenCv相关文件的路径。 [编] 5、C例程 hello-worid. cpp /该程序从文件中读入一幅图像,将之反色,然后显示出来 ⊥nc1ude<std1ib,h> include <stdio. h> ⊥nc1ude<math.h> #include <cv. h> #include highgui.h> int main (int argc, char argv[ IplImage* img=0 int height, width, step, channels uchar *datai . i,i,k if(argc<2) printf("Usage: main <image-file-name>\n\7")i e×1t(0); load an image img=cvLoadImage (argv(1)i if(!i printf("Could not load image file: s\n",argv(1)); exit(o) // get the image data height imc->height i width img->width Step img->widthstep i channels img->channels data (uchar *)img->imageData i print f("Processing a dx%d image with d channels\n", height, width, channels) create a window cvNamedwindow("mainwin CV WINDOW AUTOSIZE cvMoveWindow ("mainwin", 100, 100) t the image 相当于 caNot(img); for(i-o; isheighti 1++) for(j=; j<width j++) for(k-Oik<channels; k++) data[instep+i*channelstkl255-data [i*step+i*channels+k] // show the image cvShowImage("mainwin", img )a wait for a key cwWaitkey (0)i re⊥ ease the image cvReleaseImage (&img )i return 0 [编軸] GUI指令 [编辑] 1、窗口管理 [编辑] (1)创建和定位一个新窗口 cvNamed啊 indow("win1", CV WINDO啊_ AUTOSIZE); CvMovewindow("winl" 100, 100)7// offset from the UL corner of the screen [编辑] 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论