1)core section. 这里定义了OpenCV的一些基本的块(Blocks);
2)highgui module. 该模块包含了一些图像的输入输出操作(UI)。
另外,为了能够在控制台做输入输出,我们会包含iostream,而string是用于字符串的处理。接下来,为了防止OpenCV的数据结构或命名与其它库函数比如STL有冲突,我们引入命名空间cv,在有冲突的情况下可以用前缀cv::来指定具体使用哪个库(关于命名空间,我们会在下一讲做详细介绍)。
1 OpenCV简介
OpenCV(Open Source Computer Vision)是一个用于实时处理的计算机视觉函数库,它基于BSD许可证授权并且可免费用于学术研究和商业应用。它拥有C/C++、Python、和Java(仅用于Android)接口,并可在Windows、Linux、Mac和Android平台上运行。OpenCV库包含大于2500个优化算法,拥有5M的下载量和47K+的用户群体。OpenCV在现实中的应用包括视频监控(Video Surveillance)、交互艺术(Interactive Art)、矿山检查(Mine Inspection)、全景图拼接(Panorama Stitching)以及最新的机器人学(Robotics)应用【此段翻译自http://code.opencv.org/projects/OpenCV/wiki/WikiStart】。
2 OpenCV模块结构(Modular Structure)
OpenCV拥有一个模块结构,也就是说,OpenCV包(Package)里包含数个共享的或静态的库(Libraries),分别如下
①core. 该模块定义了OpenCV的基本数据结构,包括多维数组(Multi-dimensional Array)和用于其它模块的基本函数;
②imgproc. 该模块用于图像处理(Image Processing)。它包括线性和非线性的图像滤波(Linear and Non-Linear Image Filtering)、几何图像变换(Geometrical image Transformations),包括缩放(Resize), affine andperspective warping, generic table-based remapping、颜色空间变换(Color Space Conversion)、直方图(Histograms)等;
③video. 这是一个视频分析模块,包含运动估计(Motion Estimation)、背景消除/背景差分(Background Subtraction)和物体跟踪(Object Tracking)算法;
④calib3d. 该模块包括基本的多视图集合算法(Multiple-View Geometry Algorithms)、单体和立体相机的标定(Single and Stereo Camera Calibration)、对象姿态估计(Object Pose Estimation)、双目立体匹配(Stereo Correspondence)算法和元素的三维重建(Elements of 3D Reconstruction);
⑤features2d. 包括显着特征检测器(Salient Feature Detectors)、描述符(Descriptors)和描述符匹配器(Descriptor Matchers);
⑥objdetect. 包括预定义的目标和实例的检测,如脸、眼、杯子、人以及汽车等;
⑦highgui. 该模块拥有一个简单易用的视频捕捉(Video Capturing)、图像及视频译码(Image and Video Codecs)以及简单的UI接口;
⑧gpu. 包含不同模块的GPU加速算法。
另外还有其它的辅助模块,比如FLANN以及Google的测试包、Python bindings等。
本文介绍了OpenCV的基本结构,包括core、highgui等模块的功能。core模块定义了OpenCV的基本数据结构和函数;highgui模块则涉及图像输入输出操作。OpenCV还包含了imgproc、video、calib3d、features2d、objdetect等多个用于图像处理、视频分析、特征检测和3D重建的模块。此外,文章提到了GPU加速算法和与其他库的接口。
7万+

被折叠的 条评论
为什么被折叠?



