Python-OpenCV学习(一):OpenCV结构

转载请注明出处:danscarlett的博客园

OpenCV是计算机视觉领域应用最广泛的开源工具包,基于C/C++,支持Linux/Windows/MacOS/Android/iOS,并提供了Python,Matlab和Java等语言的接口。2010年OpenCV发布了2.0版本,添加了非常完备的C++接口,从2.0开始的版本非常用户非常庞大,至今仍在维护和更新。2015年OpenCV 3正式发布,除了架构的调整,还加入了更多算法,更多性能的优化和更加简洁的API,另外也加强了对GPU的支持,现在已经在许多研究机构和商业公司中应用开来。相比OpenCV2,OpenCV3提供了更强的功能和更多方便的特性。不过考虑到和深度学习框架的兼容性,以及上手安装的难度,这部分先以2为主进行介绍。

根据功能和需求的不同,OpenCV中的函数接口大体可以分为如下部分:

  • core:核心模块,主要包含了OpenCV中最基本的结构(矩阵,点线和形状等),以及相关的基础运算/操作。
  • imgproc:图像处理模块,包含和图像相关的基础功能(滤波,梯度,改变大小等),以及一些衍生的高级功能(图像分割,直方图,形态分析和边缘/直线提取等)。
  • highgui:提供了用户界面和文件读取的基本函数,比如图像显示窗口的生成和控制,图像/视频文件的IO等。

  针对视频和一些特别的视觉应用,OpenCV也提供了强劲的支持:

  • - video:用于视频分析的常用功能,比如光流法(Optical Flow)和目标跟踪等。
  • - calib3d:三维重建,立体视觉和相机标定等的相关功能。
  • - features2d:二维特征相关的功能,主要是一些不受专利保护的,商业友好的特征点检测和匹配等功能,比如ORB特征。
  • - object:目标检测模块,包含级联分类和Latent SVM
  • - ml:机器学习算法模块,包含一些视觉中最常用的传统机器学习算法。
  • - flann:最近邻算法库,Fast Library for Approximate Nearest Neighbors,用于在多维空间进行聚类和检索,经常和关键点匹配搭配使用。
  • - gpu:包含了一些gpu加速的接口,底层的加速是CUDA实现。
  • - photo:计算摄像学(Computational Photography)相关的接口,当然这只是个名字,其实只有图像修复和降噪而已。
  • - stitching:图像拼接模块,有了它可以自己生成全景照片。
  • - nonfree:受到专利保护的一些算法,其实就是SIFT和SURF。
  • - contrib:一些实验性质的算法,考虑在未来版本中加入的。
  • - legacy:字面是遗产,意思就是废弃的一些接口,保留是考虑到向下兼容。
  • - ocl:利用OpenCL并行加速的一些接口。
  • - superres:超分辨率模块,其实就是BTV-L1(Biliteral Total Variation – L1 regularization)算法
  • - viz:基础的3D渲染模块,其实底层就是著名的3D工具包VTK(Visualization Toolkit)。

参考资料:

《给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV》

时间: 2024-08-05 18:51:02

Python-OpenCV学习(一):OpenCV结构的相关文章

Python模块学习笔记— —OpenCV(01)模块的配置

一般情况下,Python不包括OpenCV模块,需要自己安装或者配置,安装比较简单我就不说了,说一下自己下载模块,动手配置(因为lz用的是WinPython,绿色版非安装,虽然集成了很多模块,但是木有OpenCV,也不能直接安装,只能自己配置) 那么首先要先下载模块包,可以去我的资源里下载Python2.x的32位OpenCV或64位OpenCV,若是Python3.x请到这里自行下载. 下载完成后,文件扩展名是whl,然后解压即可(当然这里都当作windows操作系统),把opencv_pyt

OpenCV学习:OpenCV源码编译(vc9)

安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要的小伙伴们可以自己动手,丰衣足食! 1). 安装CMake cmake-2.8.8-win32-x86.exe (http://www.cmake.org/cmake/resources/software.html) 百度云盘:http://pan.baidu.com/s/1dEYbx77  密码:

Python基础学习3---数据结构

数据结构 数据结构基本上就是---他们是可以处理数据的结构或者说他们是用来存储一组相关数据的. 在python中有三种内建的数据结构-----列表.元组和字典 列表(list) 列表就像是我们要去超市买东西列的清单一样,将需要买的东西列成清单后整个结构是就是列表数据了,一旦创建完成后 我们可以随意进行添加 删除修改操作 所以可以断定 列表数据是一个可变的数据类型 列表是使用对象和类的一个例子.当你使用变量 i 并给它赋值的时候,比如赋整数 5 ,你可以认为你创建了一个类(类型) int 的对象(

Python结合OpenCV学习资料

原文地址:http://leihuang.net/2014/05/19/List-Interviews/ 单链表的一些常见面试题汇总 单链表反转/逆序 求单链表倒数第N个数 找到单链表的中间结点 如何判断链表是否有环的存在 单链表建环,无环链表变有环 如何知道环的长度? 如何找出环的连接点在哪里? 删除单链表中的重复元素 下面我先简单叙述一下每道题的思路,然后把实现的程序一起贴出来,不会讲得太细,我觉得只要有了思路之后,接下来的难点就是语言上的一些细节问题了,这个不自己去实现,听别人讲是体会不到

OpenCV学习笔记[3]Java Demo人脸识别

OpenCV学习笔记:Java Demo人脸识别 [简介] 我记得在很久以前,CSDN似乎搞过一个活动,给一个橘子林的照片,让程序计算相片里有多少个橘子.之所以对这个问题记忆犹新,是因为在专业学习初期,相比于排序遍历搜索等简单算法而言,"图像识别"算法一直是难以理解的东西,而我偏偏又痴迷于此,不管自己多么无知,对于令我迷惑的问题总是充满着解决的渴望. 通过对OpenCV的初步了解,我发现图像识别的很多问题都可以用它方便的解决,本次将是一个来自官方的人脸识别的实例,我们提供图像,使用内置

OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波

http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 2013-03-23 17:44 16963人阅读 评论(28) 收藏 举报 分类: 机器视觉(34) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] KAZE系列笔记: OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 OpenCV学习笔记(28)KA

利用opencv中的级联分类器进行人脸检测-opencv学习(1)

OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本的C++接口除了Haar特征以外也可以使用LBP特征. 先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包括读操作read.复制clone.获得特征类型getFeatureType,分配图片分配窗口的操作setImage.setWindow,计算有序特征calcOrd,计算绝对特征calcC

OpenCV学习教程入门篇<一、介绍>

OpenCV,是Inter公司开发的免费开源专门由于图像处理和机器视觉的C/C++库,英文全称是Open Source Computer Vision. 1. 可视化语言Matlab与OpenCV都可以用于图像处理,学哪种比较好? Matlab是主要面对高校做科研的一种可视化数学处理工具箱,OpenCV在有关图像的项目研发方面应用广泛.想做模式识别和机器视觉方向的,我的导师建议两者都要学好,不论发表paper,还是做项目. 2.OpenCV是基于C/C++的函数库,有什么优势? 使用C编写的库,

OpenCV学习(2)--基本数据结构

OpenCV的基本数据结构 CvPoint:表示图像中的点 CvPoint2D32f:二维空间中的点 CvPoint3D32f:三维空间中的点 这些都是结构体,并不是C++语言中的类,所以他们的构造函数就是简单的内联函数. 1 typedef struct CvPoint 2 { 3 int x; 4 int y; 5 } 6 CvPoint; 7 8 9 CV_INLINE CvPoint cvPoint( int x, int y ) 10 { 11 CvPoint p; 12 13 p.x

OpenCV学习(3)--Mat矩阵的操作

CvMat的矩阵结构 1 typedef struct CvMat 2 { 3 //矩阵中元素的类型 4 int type; 5 //行数据长度 6 int step; 7 8 /* for internal use only */ 9 int* refcount; 10 int hdr_refcount; 11 12 //指向数据的指针 13 union 14 { 15 uchar* ptr; 16 short* s; 17 int* i; 18 float* fl; 19 double* d