文档库 最新最全的文档下载
当前位置:文档库 › SIFT Opencv 中文注释

SIFT Opencv 中文注释

cvPutText opencv中汉字的输出

cvPutText opencv中汉字的输出 OPENCV 不支持汉字输出,但可以修改其代码,支持汉字。字符输出在nitFont、cvPutText、cvGetSize三个函数中,文件在cxcore\src\cxdrawing.cpp 函数介绍: void cvlnitFont(CvFont*font,int font_face,double hscale,double vscale,double shear,int thickness,int line_type); /*font表示被初始化的字体结构体。font_face字体名称标识符,目前仅支持CV_FONT_HERSHEY_SIMPLEX等少数几种字体。hscale表示字体宽度的放大系数,例如0.5f表示宽度为原来的一半,shear字体豹裁瘦的斜率,1表示字体倾斜45度。thickness表示字体笔划的粗细程度。line_type表示字体笔划的类型,具体参见cvLine。*/ void cvPutText(CvArr *img,char+text,CvPoint org,CvFont *font,CvScalar color); /*img表示图像。这里要严格的ASCII字符,不能接受像GB2312等双字节编码。org表示第1个字符左下角的坐标。font表示字体结构体。color表示文本的字体颜色。*/ 字符编码:ASCII(一个字节),GB2313(两个字节),Unicode(两个字节).unicode兼容ASCII,不兼容GB,需要ANSI-C语言来转换.

思想如下: 1,解析汉字的编码;2,根据汉字编码装载汉字的形状;3,输出汉字的形状。 1,从char --> wchar_t 2,采用TrueType 字库。利用开源的FreeType库来处理字库。具体如下: 用FreeType的API提取一个字符的过程如下:{ FT_Library m_library;//字库 FT_Face m face;//字体 //打开字库文件,创建一个字体 FT_Init_FreeType(&m_library); FT_New_Face(m_library,"TrueType.ttf,0,&m_face); ∥根据字符的编码得到字符的索引位置 //根据字符在字库中索引得到字库轮廓 //根据字符的轮廓渲染字符的二值位图 FT_UInt glyph_index=FT_Get_Char_Index(m_face,'中'); FT_Load_Glyph(m_face,glyph_index,FT_LOAD_DEFAULT); FT_RenderGlyph(m_face->glyph,FT_RENDER_MODE_MONO); //释放FreeType库管理的资源 FT_Done_Face(m_face); FT_Done_FreeType(m_library);

opencv for c# 开发文档

OpenCV for Unity 1.2.3 iOS & Android support Win & Mac Standalone support(if Unity4,Pro only) Support for preview in the Editor(if Unity4,Pro only) Work with Unity Free & Pro System Requirements Build Win Standalone & Preview Editor : Windows7 or later Build Mac Standalone & Preview Editor : OSX 10.8 or later OpenCV for Unity is an Assets Plugin for using OpenCV from within Unity. ●Since this package is a clone of OpenCV Java, you can use as it is all the API Reference OpenCV Java 2.4.11 (link). (“org.opencv.android” and “SURF and SIFT of org.opencv.features2d” are excluded) ●You can image processing in real-time by using the WebCamTexture capabilities of Unity. (real-time face detection works smoothly in iPhone 5) ●Provides a method to interconversion of Unity's Texture2D and OpenCV's Mat. ●Includes many classes from OpenCVForUnity, and implements IDisposable. You can manage the resources with the "using" statement. Please download Demo Application for Android and watch Setup Tutorial Video(Unity4 Unity5). API Reference OpenCV for Unity SampleCode using OpenCV for Unity is available. ●MarkerBased AR Sample ●FaceTracker Sample ●Voforia with OpenCV for Unity Sample ●Kinect with OpenCV for Unity Sample

C# OpenCV 初体验

[C#] OpenCV 初體驗 2011/05/17 在Visual Studio 2010 使用OpenCV 對於WebCam 有問題的話,請參考以下連結 https://www.wendangku.net/doc/ea13977244.html,/Forums/zh-TW/230/thread/d1647ae6-7f61-453e-818a-2fa4f52592bb 一、簡介 以前研究所的時候,有使用https://www.wendangku.net/doc/ea13977244.html, 配合OpenCV 做影像處理,這東西相當讚,可以省去不少開發時間,今天嘗試看看如何在Visual C# 2008 上使用OpenCV。 以下引用OpenCV 中文網站的介紹 1. 什麼是OpenCV OpenCV是Intel?開源電腦視覺庫。它由一系列C 函數和少量C++ 類構成,實現了圖像處理和電腦視覺方面的很多通用演算法。 2. OpenCV 重要特性 OpenCV 擁有包括300 多個C函數的跨平臺的中、高層API。它不依賴於其它的外部庫——儘管也可以使用某些外部庫。 OpenCV 對非商業應用和商業應用都是免費(FREE)的。(細節參考license)。 OpenCV 為Intel? Integrated Performance Primitives (IPP) 提供了透明介面。這意味著如果有為特定處理器優化的的IPP 庫,OpenCV 將在運行時自動載入這些庫。更多關於IPP 的信息請參考:https://www.wendangku.net/doc/ea13977244.html,/software/products/ipp/index.htm 3. 體驗OpenCV 的魅力 看了以上對OpenCV的介紹,還是不知道OpenCV在做什麼的話,可以先看這段影片,影片的成果是透過OpenCV 所撰寫而成。 二、方法 1. 下載與安裝OpenCV 要使用OpenCV,首先必須要下載並且安裝,點這裡下載OpenCV_1.1pre1a.exe,下載後執行安裝,安裝過程幾乎都是點選下一步,在此需記住安裝目錄為何,預設為C:\Program Files\OpenCV。

opencv配置

VS2010 + OpenCV2.3配置 ; 在VS2010下安装配置OpenCV2.3 ; 全程截图,绝对能配置好,不能的留言! 操作系统:Windows 7 x86 中文旗舰版; 编译环境:Visual Studio 2010 中文旗舰版; OpenCV版本:OpenCV-2.3.0-win、OpenCV-2.3.1-win; 备注: a、不需要Cmake编译!! b、如果是最新的2.3.1版本,则将下面第5步中的(5)和(6)中的名为230的lib 修改成231即可,否则会出现找不到lib的情况。 c、不分x86和x64版本,一律按照这个方案配置就可以使用。 d、C#开发环境下的配置方法: https://www.wendangku.net/doc/ea13977244.html,/mvp_xuan/blog/item/7e6f6d8c4d34be09b31bb aa9.html?timeStamp=1316746687080 e、第5步属于“项目属性配置”,意思是:“每次新建或新打开一个项目,都需要重新配置”。1-4步是系统配置,一次性工程。 1、下载OpenCV(必须要superpack.exe) https://www.wendangku.net/doc/ea13977244.html,/download/OpenCV-2.3.0-win-superpack.exe 2、安装 解压到D盘根目录下。(位置随便,不过下面的path需要根据实际情况自行修改了。) 3、设置系统环境变量 在用户变量处,新建PATH和OPENCV两个项: ———————————————————— PATH (只需添加下面中的一行,根据系统情况自行选择) D:\OpenCV2.3\build\x86\vc10\bin ———————————————————— OPENCV D:\OpenCV2.3\build ————————————————————

OpenCV中文翻译教程

OPENCV2基础(补充材料) OpenCV_tutorials翻译资料整理而来 翻译材料出处: https://www.wendangku.net/doc/ea13977244.html,/opencvdoc/2.3.2/html/doc/tutorials/tutorial s.html [2014/10]

目录 一、Mat - 基本图像容器 (2) 二、OpenCV如何扫描图像、利用查找表和计时 (9) 三、矩阵的掩码操作 (19) 四、使用OpenCV对两幅图像求和(求混合(blending)) (24) 五、改变图像的对比度和亮度 (27) 六、图像平滑处理 (33) 七、腐蚀与膨胀(Eroding and Dilating) (40) 八、实现自己的线性滤波器 (49) 九、给图像添加边界 (53) 十、Sobel 导数 (59) 十一、霍夫线变换 (65) 十二、直方图均衡化 (72) 十三、仿射变换 (77) 十四、Remapping 重映射 (85)

一、 Mat - 基本图像容器 目的 从真实世界中获取数字图像有很多方法,比如数码相机、扫描仪、CT或者磁共振成像。无论哪种方法,我们(人类)看到的是图像,而让数字设备来“看“的时候,则是在记录图像中的每一个点的数值。 比如上面的图像,在标出的镜子区域中你见到的只是一个矩阵,该矩阵包含了所有像素点的强度值。如何获取并存储这些像素值由我们的需求而定,最终在计算机世界里所有图像都可以简化为数值矩以及矩阵信息。作为一个计算机视觉库,OpenCV其主要目的就是通过处理和操作这些信息,来获取更高级的信息。因此,OpenCV如何存储并操作图像是你首先要学习的。 Mat 在2001年刚刚出现的时候,OpenCV基于C语言接口而建。为了在内存(memory)中存放图像,当时采用名为IplImage的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料。但这种方法必须接受C语言所有的不足,这其中最大的不足要数手动内存管理,其依据是用户要为开辟和销毁内存负责。虽然对于小型的程序来说手动管理内存不是问题,但一旦代码开始变得越来越庞大,你需要越来越多地纠缠于这个问题,而不是着力解决你的开发目标。 幸运的是,C++出现了,并且带来类的概念,这给用户带来另外一个选择:自动的内存管理(不严谨地说)。这是一个好消息,如果C++完全兼容C的话,这个变化不会带来兼容性问题。为此,OpenCV在2.0版本中引入了一个新的C++接口,利用自动内存管理给出了解决问题的新方法。使用这个方法,你不需要纠结在管理内存上,而且你的代码会变得简洁(少写多得)。但C++接口唯一的不足是当前许多嵌入式开发系统只支持C语言。所以,当目标不是这种开发平台时,没有必要使用旧方法(除非你是自找麻烦的受虐狂码农)。

win7+64(32)位系统+彻底Opencv安装+vs2012中文版

这两天在win7+64(32系统也只是在某些地方有区别,我会说明)位系统的vs2012中文版上永久配置了Opencv,发现装的时候遇到了好多问题,所以想总结一下。 一、安装OpenCV2.4.9 首先下载相应的软件(win7+64位系统和vs2012中文版的安装这里就不做过多的介绍了): 下载 OpenCV2.4.9: https://www.wendangku.net/doc/ea13977244.html,/downloads.html (选择windows 系统的,不区分x86和x64) 我安装的目录是E:\opencv-2.4.9,大概有几个G,当然你也可以安装其他的版本,我没有试过,整体思路是一样的。 大概等几分钟就安装好了。 二、配置环境变量 点击计算机—>右击属性—>左侧高级系统设置—>高级—>环境变量 环境变量上面是用户变量,下册为系统变量。 1. 在用户变量下侧点击新建2项: 变量名:OPENCV,变量值:E:\opencv-2.4.9\opencv\build;如下图 变量名:PATH, 变量值:E:\opencv-2.4.9\opencv\build\x64\vc11\bin; E:\opencv-2.4.9\opencv\build\x86\vc11\bin 注意之间用分号分开,如下图。

2.在系统变量中找到path,必须注意,不要把系统变量path里面的值删除,而是向里面加入,以分号隔开,在里面加入以下路径 对于64位系统加入: E:\opencv-2.4.9\opencv\build\x64\vc11\bin; E:\opencv-2.4.9\opencv\build\x86\vc11\bin 对于32位系统加入: E:\opencv-2.4.9\opencv\build\x86\vc11\bin 弄完环境变量后,最好重启以下系统。当然在cmd中有些方法查看变量是否奏效,这里不再啰嗦,还有注意虽然我们是vs2012但是也要选vc11\bin这样的路径,而不是vc12\bin. 三、vs2012工程的配置 有些文档说每次新建工程都要重新配置,或者以一些啰嗦的方法配置如https://www.wendangku.net/doc/ea13977244.html,/lysc_forever/article/details/24272595 里面说的方法,其实不用,我们完全一次性配置好而且简单,此方法是在https://www.wendangku.net/doc/ea13977244.html,/poem_qianmo/article/details/19809337 里面学到的。 点开vs2012—>文件—>新建—>项目—>Win32控制台应用程序—>确定

opencv中的图像坐标和行列的关系

OpenCV中文站中有一篇关于OpenCV基础操作的文章《OpenCV 编程简介(矩阵/图像/视频的基本读写操作)入门必读》,上面对OpenCV的一些入门操作进行了详细的介绍。我也是看了这篇文章后才开始了OpenCV的编程。但是最近发现了一个理解上的小失误,导致一个问题困扰了很长时间。现在问题解决了,就把思考的过程写在这跟大家分享一下。 该文章其中有一部分是关于如何操作图像像素值的介绍: 基于指针的直接访问:(简单高效) IplImage* img = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); int height = img->height; int width = img->width; int step = img->widthStep/sizeof(uchar); uchar* data = (uchar *)img->imageData; data[i*step+j] = 111; 对像素值的访问,作者用了data[i*step+j]这样的格式,当时没怎么仔细想,就认为这是图像中坐标为(i, j)像素的值,其实并不是这样的。 首先,来看一下IplImage的结构,其中像素值存放在char *imageData指针做指向的区域,OpenCV官方文档中将其解释为"A pointer to the aligned image data",就是指向排列好的图像数据的指针。但是指针取出来,是一个一维数组data[i*step+j],是怎么体现出“排列好的”这个性质的呢?OpenCV用了一个辅助的变量来实现。就是IplImage的widthStep,它表示图像一行有多少个字节。用这个值除以一个像素所占的字节数,就可以得到一行有多少个像素。data[i*step+j]就是第i行第j个像素的像素值(i和j从0开始,这个应该不用我说吧)。 但是,如果用(i, j)来表示坐标的话,正好反了。因为行号是在列的方向递增的。比如说第5行,那么它的纵坐标应该是5-1。第五行的第几个,这个几才代表横坐标。 明白了这点就好办了,如果想用(i, j)同时来表示坐标和数组中的点,那么应该用data[i+j*step]。i在图像宽度范围内递增,j在图像高度范围内递增。如果图像宽和高非别为w和h,那么对像素的遍历可以用下面的循环搞定: for(int j = 0; j < h; j++) { for(int i = 0; i < w; i++) { printf("(%d, %d)=%d\t", i, j, data[i+j*step]); } } 以后就定义成data[i+j*step],方便后面的操作。一般情况下还是习惯i在前、j在后的格式。 (坐标是从0开始的,并且是相对图像原点的位置。图像原点或者是左上角(img->origin=IPL_ORIGIN_TL) 或者是左下角 (img->origin=IPL_ORIGIN_BL) )?假设有 8-bit 1-通道的图像 I (IplImage* img): I(x,y) ~ ((uchar*)(img->imageData + img->widthStep*y))[x] ?假设有 8-bit 3-通道的图像 I (IplImage* img): I(x,y)blue ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3] I(x,y)green ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+1] I(x,y)red ~ ((uchar*)(img->imageData + img->widthStep*y))[x*3+2] 例如,给点 (100,100) 的亮度增加 30 ,那么可以这样做:

OpenCv参考手册-CvAux中文参考手册

CvAux中文参考手册Wikipedia,自由的百科全书 目录 ? 1 立体匹配 o 1.1 FindStereoCorrespondence ? 2 View Morphing Functions o 2.1 MakeScanlines o 2.2 PreWarpImage o 2.3 FindRuns o 2.4 DynamicCorrespondMulti o 2.5 MakeAlphaScanlines o 2.6 MorphEpilinesMulti o 2.7 PostWarpImage o 2.8 DeleteMoire ? 3 3D Tracking Functions o 3.1 3dTrackerCalibrateCameras o 3.2 3dTrackerLocateObjects ? 4 Eigen Objects (PCA) Functions o 4.1 CalcCovarMatrixEx o 4.2 CalcEigenObjects o 4.3 CalcDecompCoeff o 4.4 EigenDecomposite o 4.5 EigenProjection ? 5 Embedded Hidden Markov Models Functions o 5.1 CvHMM o 5.2 CvImgObsInfo o 5.3 Create2DHMM o 5.4 Release2DHMM o 5.5 CreateObsInfo o 5.6 ReleaseObsInfo o 5.7 ImgToObs_DCT o 5.8 UniformImgSegm o 5.9 InitMixSegm o 5.10 EstimateHMMStateParams o 5.11 EstimateTransProb o 5.12 EstimateObsProb o 5.13 EViterbi o 5.14 MixSegmL2 [编辑]

OpenCV入门教程

OpenCV 入门教程 作者:于仕琪 shiqi.yu@https://www.wendangku.net/doc/ea13977244.html, https://www.wendangku.net/doc/ea13977244.html, 2012 年 8 月 版权所有?于仕琪 本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

前言 OpenCV 是一个广受欢迎的开源计算机视觉库,它提供了很多函数,实现了很多计算机视觉算法,算法从最基本的滤波到高级的物体检测皆有涵盖。很多初学者希望快速掌握OpenCV 的使用方法,但往往会遇到各种各样的困难。其实仔细分析,造成这些困难的原因有两类:第一类是C/C++编程基础不过关;第二类是不了解算法原理。解决这些困难无非提升编程能力,以及提升理论基础知识。提升编程能力需要多练习编程,提升理论知识需要系统学习《数字图像处理》、《计算机视觉》和《模式识别》等课程,所有这些都不能一蹴而就,需要耐下心来认真修炼。 同时我们也需要认识到 OpenCV 只是一个算法库,能为我们搭建计算机视觉应用提供“砖头”。我们并不需要完全精通了算法原理之后才去使用 OpenCV,只要了解了“砖头”的功能,就可以动手了。在实践中学习才是最高效的学习方式。本小册子希望为初学者提供引导,使初学者快速了解 OpenCV 的基本数 据结构以及用法。 此外,如您发现有错误之处,欢迎来信指正。 于仕琪 深圳大学 插播广告:欢迎有能力、有激情以及对计算机视觉有兴趣的同学报考我的 研究生。欲了解详情可以访问深圳大学招生网https://www.wendangku.net/doc/ea13977244.html,/或者给我发 email。

目录 第 1 章预备知识 (5) 1.1 编程的流程 (5) 1.2 什么叫编辑 (6) 1.3 什么叫编译 (6) 1.4 什么叫连接 (7) 1.5 什么叫运行 (7) 1.6 Visual C++是什么 (8) 1.7 头文件 (9) 1.8 库文件 (10) 1.9 OpenCV 是什么 (11) 1.10 什么是命令行参数 (12) 1.11 常见编译错误 (13) 1.11.1 找不到头文件 (13) 1.11.2 拼写错误 (14) 1.12 常见链接错误 (15) 1.13 运行时错误 (17) 第 2 章OpenCV 介绍 (19) 2.1 OpenCV 的来源 (19) 2.2 OpenCV 的协议 (19) 第 3 章图像的基本操作 (21) 3.1 图像的表示 (21) 3.2 Mat 类 (23) 3.3 创建 Mat 对象 (24) 3.3.1 构造函数方法 (24) 3.3.2 create()函数创建对象 (25) 3.3.3 Matlab 风格的创建对象方法 (26)

opencv安装

1、OpenCV 的下载地址:https://www.wendangku.net/doc/ea13977244.html,/projects/opencvlibrary/ 2、有用的网址: (1) Visit OpenCV Wiki-pages at https://www.wendangku.net/doc/ea13977244.html,/wiki/ and look for the information there (and/or add it when you have found a solution) (2) Search through OpenCV archives at https://www.wendangku.net/doc/ea13977244.html, (https://www.wendangku.net/doc/ea13977244.html,/group/OpenCV/) (3) Join OpenCV mailing list at yahoo groups (see FAQs on how to do it) and mail your questions (the mailing list will probably migrate to OpenCV's SourceForge site https://www.wendangku.net/doc/ea13977244.html,/projects/opencvlibrary) (4) Look at the OpenCV sample code, read the reference manual ( https://www.wendangku.net/doc/ea13977244.html,/documentation/index.html ) (5) OpenCV 中文网站:https://www.wendangku.net/doc/ea13977244.html, 一、程序的安装设置 1、OpenCV 安装完毕后,检查 C:\Program Files\OpenCV1.2\bin 是否已经被加入到环境变量PATH,如果没有,请加入。(我的电脑--属性--高级--环境变量—***的用户变量--选中‘Path’变量,点击‘编辑’,在‘变量值’栏的最后加入‘C:\Program Files\OpenCV1.2\bin’)。 加入后需要注销当前Windows用户(或重启)后重新登陆才生效(也可以通过任务管理器终止explorer.exe 进程,然后再重新运行 explorer.exe )。 2、下载安装 Microsoft Visual C++ 2008 Redistributable OpenCV1.2 在 VS2005 环境下编译时,可能出现如下错误(即‘应用程序正常初始化 (0xc0150002失败)’):

OPENCV训练图像集中文版

级联分类器训练 引言 级联分类器的工作主要包括两个阶段:训练和检测。检测阶段被描述在一个常规的OpenCV 文件的objdetect模块的文档里。文档介绍了级联分类器的一些基本信息。目前的指南描述了如何训练级联分类器:一个训练数据集和运行训练应用程序的准备。 重要的笔记 在OpenCV里有两个应用程序可以用来训练级联分类器:opencv_haartraining和opencv_traincascade。opencv_traincascade是一个较新的版本,用C++按照OpenCV2.x API 的标准编写。但这两个应用程序之间的主要区别是,opencv_traincascade同时支持Haar [Viola2001]和LBP[Liao2007](局部二值模式)的特征。相比于Haar特征,LBP特征是整数,所以用LBP训练和检测比用Haar特征快好几倍。至于LBP和Haar的检测质量取决于训练:首先是训练数据集的品质还有训练参数。训练一个和基于Haar的分类有几乎相同的质量的基于LBP的分类是有可能的。 opencv_traincascade和opencv_haartraining以不同的文件格式存储训练好的分类器。值得注意的是,较新的级联检测接口(见objdetect模块的级联分类器类)两种格式都支持。opencv_traincascade可以用旧格式保存(输出)训练好的级联。但opencv_traincascade和opencv_haartraining无法在中断后以另一种格式加载(输入)一个分类器来进一步训练。 注意,opencv_traincascade应用程序可以使用TBB实现多线程。在多核模式下使用,OpenCV 必须要用TBB来构建。 并且这有一些和训练相关的辅助工具。 ·opencv_createsamples是用来准备正训练数据集和测试样本集的。 opencv_createsamples产生一个opencv_haartraining和opencv_traincascade都支持的格式的正样本数据集。输出的是一个以*.VEC为后缀的文件,它是一种包含图像的二进制格式。 ·opencv_performance可用于评估分类器的质量,但是只能评估opencv_haartraining的训练。它需要一个图像标记的集合,运行分类器并且报告性能,即找到的对象的数量,没有对象的数量,错误警报的数量等信息。 因为opencv_haartraining是一个过时的应用,只对opencv_traincascade进行进一步的讲解。为opencv_traincascade准备训练数据时opencv_createsamples工具是必需的,所以它也将被详述。 opencv_createsamples工具 一个opencv_createsamples工具提供了数据集的生成功能,写和读,用数据集这个术语作为训练集和测试集的统称。 训练数据准备 为了训练我们需要一组样本。有两种类型的样品:正和负。负样本对应于非目标图像。正样本对应于包含了被测物体的图像。集负样本必须手动创建,而一组正样本由opencv_createsamples工具创建。

opencv中文手册

目录 ? 1 梯度、边缘和角点 o 1.1 Sobel o 1.2 Laplace o 1.3 Canny o 1.4 PreCornerDetect o 1.5 CornerEigenValsAndVecs o 1.6 CornerMinEigenVal o 1.7 CornerHarris o 1.8 FindCornerSubPix o 1.9 GoodFeaturesToTrack ? 2 采样、插值和几何变换 o 2.1 InitLineIterator o 2.2 SampleLine o 2.3 GetRectSubPix o 2.4 GetQuadrangleSubPix o 2.5 Resize o 2.6 WarpAffine o 2.7 GetAffineTransform o 2.8 2DRotationMatrix o 2.9 WarpPerspective o 2.10 WarpPerspectiveQMatrix o 2.11 GetPerspectiveTransform o 2.12 Remap o 2.13 LogPolar ? 3 形态学操作 o 3.1 CreateStructuringElementEx o 3.2 ReleaseStructuringElement o 3.3 Erode o 3.4 Dilate o 3.5 MorphologyEx ? 4 滤波器与色彩空间变换 o 4.1 Smooth o 4.2 Filter2D o 4.3 CopyMakeBorder o 4.4 Integral o 4.5 CvtColor o 4.6 Threshold o 4.7 AdaptiveThreshold ? 5 金字塔及其应用 o 5.1 PyrDown o 5.2 PyrUp

OpenCV概述

OpenCV概述 数字图像处理技术和计算机视觉技术的迅速发展及其庞大的应用市场,迫切需要像计算机图形学的OpenGL和DirectX那样的标准API。近年来,Intel推出了高性能的开源计算机视觉库OpenCV(Open Source Computer Vision Library),应用OpenCV可以大大简化图像处理与计算机视觉程序设计工作,提高软件开发效率。 OpenCV包含了几百个图像处理和计算机视觉方面的C语言函数和一些C++类,实现了许多流行的图像处理和计算机视觉算法。OpenCV的目标是形成一个易于使用的图像处理和计算机视觉软件开发包,来解决该领域的一些共性问题。 OpenCV具有跨平台、免费、速度快、易于使用的特点,提供了透明的IPP(Integrated Performance Primitives)接口,能够基于Intel处理器进行性能优化。OpenCV资源非常丰富,其源码(包括参考手册)可以从:https://www.wendangku.net/doc/ea13977244.html,/projects/opencvlibrary/免费下载,程序设计中遇到的问题可求助于OpenCV讨论组(https://www.wendangku.net/doc/ea13977244.html,/group/OpenCV/)和邮件列表。另外,从https://www.wendangku.net/doc/ea13977244.html,/可以获取相关的中文信息。学习OpenCV的主要方法是阅读OpenCV参考手册,查看例程,以及查看邮件列表。 现在出版的中文书: 《学习OpenCV(中文版)》 《OpenCV中文教程》 《Learning OpenCV(影印版)》 一.OpenCV类库简介 OpenCV类库主要由CxCORE、CV、CVAUX、HighGUI、ML、CVCAM等库组成,其体系结构如图1所示: 图1 OpenCV类库体系结构 1.CxCORE库是OpenCV的核心,涉及基本数据结构、矩阵操作、动态数据结构等。 2.CV库包括图像处理的常用算法(如图像滤波、图像分割、边缘检测、数学形态学 等)、结构分析(如轮廓处理、多边形逼近、Delaunay三角划分等)、模式识别、摄 像机标定、三维重建、运动分析与目标跟踪等。 3.CVAUX则是一个辅助库,包含一些试验性函数,如立体视觉匹配、隐马尔科夫场 等。 4.HighGUI库包含一些简单的用户界面函数(如创建滑动条、窗口等)、图像文件读/ 写函数以及视频读/写函数。 5.ML是一个机器学习库,包含模式分类的一些C++类和函数,如贝叶斯分类器、支 持向量机、决策树、神经网络等。 6.CVCAM是有关摄像机使用的库。

OPENCV的配置过程 VS2010环境下 过程绝对简单

VS2010环境下OpenCV2.3.1的编译过程 备注: a、不需要Cmake编译!! b、如果是最新的2.3.1版本,则将下面第5步中的(5)和(6)中的名为230的lib修改成231即可,否则会出现找不到lib的情况。 c、不分x86和x64版本,一律按照这个方案配置就可以使用。 d、操作系统:Windows7x86中文旗舰版; 编译环境:Visual Studio2010中文旗舰版; OpenCV版本:OpenCV-2.3.0-win、OpenCV-2.3.1-win; 1.到https://www.wendangku.net/doc/ea13977244.html,/index.php/Download下载OpenCV for Windows(也即OpenCV- 2. 3.1-win-superpack.exe文件)。 2.将OpenCV-2. 3.1-win-superpack.exe解压并放到某个目录下,例如D:\Program Files\OpenCV-2.3.1-win-superpack\opencv(无需运行setup.exe,解压则可)。解压后的目录结构如下图。

3.添加OpenCV的include和lib,步骤如下:在VS新建一个Win32控制台应用程序,以下以工程Opencv为例,然后选择菜单栏视图->属性管理器 这时在VS编辑器右侧出现属性管理器

点开之前建的工程Opencv,会看到Debug|Win32和Release|Win32两个目录 点开Debug|Win32目录,

找到https://www.wendangku.net/doc/ea13977244.html,er,双击打开 找到箭头所指的”VC++目录”,打开,在右侧在”包含目录”中加入OpenCV安装目录下的 E:\ProgramFiles\OpenCV-2.3.1-win-superpack\opencv\build\include; E:\ProgramFiles\OpenCV-2.3.1-win-superpack\opencv\build\include\op encv;

编译opencv源代码

Opencv源码编译 For Ubuntu For Android For Windows Version0.1 2013.06.06 目录 1.Ubuntu下编译opencv源代码(For linux&Android) (2) 1.1下载opencv源码 (2) 1.2下载安装Cmake (2) 1.3安装一些ubuntu下必要的库文件: (2) 1.4使用Cmake进行配置: (3) 1.5编译opencv生成linux下的opencv库文件 (3) 1.6测试linux下Opencv例程: (4) 1.7Opencv For Android的编译 (4) 1.7.1安装ndk: (4) 1.7.2安装Android SDK (5) 1.7.4开始编译opencv中关于android相关的源码 (5) 2.Ubuntu下codeblocks Opencv开发环境配置 (7) 2.1下载安装codeblocks (7) 2.2打开cldeblocks建立一个摄像头的测试程序: (8) 2.3配置工程的头文件和链接库 (8) 3.Windows7+codeblocks Opencv开发环境搭建 (11) 3.1下载opencv2.2 (11) 3.5打开CMake (12) 3.6环境变量的设置 (12) 3.7在CMake中点击configure (14) 3.8编译oepncv源码 (15) 3.8.1先进入E盘 (15) 3.8.2进入目录OpenCV-2.2.0-build (15) 3.8.3编译opencv源码 (16) 3.8.4安装opencv库文件 (16) 3.9使用codeblocks建立openv工程 (17) 3.10测试代码 (18) 3.11给工程文件添加opencv相关路径 (19) 3.12编译工程文件 (22) 附其他参考资料备忘 (23)

学习opencv 中文版 勘误

《学习OpenCV(中文版)》勘误 来源:OpenCV开源计算机视觉库的日志 XIV页 倒数第二段,倒数第四行“正式在他们组织的一次。。。”应为“正是在他们组织的一次。。。”(by Joseph)ps:我不小心把38 页的那个删了。。。版主改回来吧 26页 函数void example2_4(IplImage *image)后少了一个{ 29页 例2-6 第9行,cvCreateImage(cvSize(cvGetSize(in),IPL_DEPTH_8U,1); 应为cvCreateIm age(cvGetSize(in),IPL_DEPTH_8U,1); (by michaellee@OpenCV China) 36页 表3-1下面第三行:它被传递给。。。多了一个给字。(by wxf198861) 39页 正文第二段最后一句话:当这个矩阵不再需要时,应该是:当矩阵不再需要时。前者容易让人误会成cvCloneMat创建的新矩阵。(by mayitbe) 不小心把38页删掉了!真的不好意思!麻烦版主改回来。 42页 例3-5下面第一段第一行第一词:遗憾的憾写错了。。。(by wxf198861) 43页 倒数第5行:“cvGet*D中有四个函数返回的是整型的”,应该为:“cvGet*D中有四个函数返回的是double型的”。(by FlyZhy) 46页

第6行开头:“...指针解引用的时候,”应改为:“...指针被引用的时候,”(xmchenzb) 49页 第3行:"nchannals"应该为"nChannels" (by deltat) 50页 第4行"冗于"应该为"冗馀" (by deltat) 51页 16行"重要度别" 应是"重要区别" (chenxinqiu50) 51页 18行“我们已经知道是种类型的” 改为“我们已经知道这种类型的” (loop.k) 51页 21行“必须对偏移并进行调整”,“并”字应去掉(lcykk) 52页 10行“用imageROI来增加某范围的像素”有歧义,应该为“用imageROI来增加某范围的像素值” (lcykk) 52页 例3-12中: cvSetImage ROI(src, cvRect(x,y,width,height)); 应为 cvSetImageROI(src, cvRect(x,y,width,height)); (by user:duanlin) 54页 表3-3 缺60页cvAnd, cvAnds 缺85页CVScale(chenxinqiu50) 英文原书中的表格中也缺少,我已经提交勘误到英文原书。Shiqi yu 14:08 2009年12月2 5日(CST)

OpenCV 编程简介教程(中文版),Image Processing, C

Open Source Computer Vision Library intro.html#SECTION00040000000000000000 https://www.wendangku.net/doc/ea13977244.html,/chenyusiyuan/archive/2010/01/26/5259060.aspx

2.2 2、输入处理 2.2.1 (1)处理鼠标事件: 2.2.2 (2)处理键盘事件: 2.2.3 (3)处理滑动条事件: 3 三、OpenCV的基本数据结构 3.1 1、图像数据结构 3.1.1 (1) IPL 图像: 3.2 2、矩阵与向量 3.2.1 (1)矩阵: 3.2.2 (2)一般矩阵: 3.2.3 (3)标量: 3.3 3、其它结构类型 3.3.1 (1)点: 3.3.2 (2)矩形框大小(以像素为精度): 3.3.3 (3)矩形框的偏置和大小: 4 四、图像处理 4.1 1、图像的内存分配与释放 4.1.1 (1)分配内存给一幅新图像: 4.1.2 (2)释放图像: 4.1.3 (3)复制图像: 4.1.4 (4)设置/获取感兴趣区域ROI: 4.1.5 (5)设置/获取感兴趣通道COI: 4.2 2、图像读写 4.2.1 (1)从文件中读入图像: 4.2.2 (2)保存图像: 4.3 3、访问图像像素 4.3.1 (1)假设你要访问第k通道、第i行、第j列的像素。 4.3.2 (2)间接访问: (通用,但效率低,可访问任意格式的图像) 4.3.3 (3)直接访问: (效率高,但容易出错) 4.3.4 (4)基于指针的直接访问: (简单高效) 4.3.5 (5)基于 c++ wrapper 的直接访问: (更简单高效) 4.4 4、图像转换 4.4.1 (1)字节型图像的灰度-彩色转换: 4.4.2 (2)彩色图像->灰度图像: 4.4.3 (3)不同彩色空间之间的转换: 4.5 5、绘图指令 4.5.1 (1)绘制矩形: 4.5.2 (2)绘制圆形: 4.5.3 (3)绘制线段: 4.5.4 (4)绘制一组线段: 4.5.5 (5)绘制一组填充颜色的多边形: 4.5.6 (6)文本标注: 5 五、矩阵处理 5.1 1、矩阵的内存分配与释放 5.1.1 (1)总体上: 5.1.2 (2)为新矩阵分配内存: 5.1.3 (3)释放矩阵内存: 5.1.4 (4)复制矩阵: 5.1.5 (5)初始化矩阵: 5.1.6 (6)初始化矩阵为单位矩阵: 5.2 2、访问矩阵元素 5.2.1 (1)假设需要访问一个2D浮点型矩阵的第(i, j)个单元. 5.2.2 (2)间接访问: 5.2.3 (3)直接访问(假设矩阵数据按4字节行对齐): 5.2.4 (4)直接访问(当数据的行对齐可能存在间隙时 possible alignment gaps): 5.2.5 (5)对于初始化后的矩阵进行直接访问: 5.3 3、矩阵/向量运算

相关文档