赞
踩
前段时间有个实习生来这边实习,已经申请到卡耐基梅隆大学 机器人专业的博士生,主攻机器视觉。本着负责的态度,从头到尾讲述了伟大的开源且跨平台的计算机视觉库OpenCV,谨以此记录工作点滴。
以下:
安装环境:VS2017 64位 + OpenCV4.53 + OpenCV_contrib 4.5.3
OpenCV :https://github.com/opencv/opencv
OpenCV_contrib :https://github.com/opencv/opencv_contrib
老规矩,一句话讲清问题:
OpenCV:开源且可跨平台的计算机视觉算法库,可用于开发实时的图像处理、计算机视觉以及模式识别等应用。
OpenCV_contrib:OpenCV的扩展包,包含尚未正式发布的新算法,如人脸识别、生物视觉、特征点提取等众多强大的算法。
搞懂OpenCV,首先要了解OpenCV的文件及内容。解压完opencv4.5.3后在文件夹中有两个文件夹,build和sources。
build文件夹是opencv编译后生成的h、hpp、lib文件;编译指cmake编译。(可发者调用接口)
sources文件夹是opencv中的源代码cpp文件;(函数具体实现)。一般的非开源的项目程序是不开放源代sources文件,但opencv作为一个开源库比较OPEN.
一、build文件
在build文件夹中,如下,
doc文件夹下是各种关于OpenCV介绍的文档;
include文件夹包含所有的头文件;
java、python语言用库、x64 win库
两个cmake文件都是cmake的一些配置,很强大的编译工具。
include文件中opencv2头文件
注意:“cv2”中的“2”并不表示OpenCV的版本号。我们知道,OpenCV是基于C/C++的,“cv”和“cv2”表示的是底层C API和C++API的区别,“cv2”表示使用的是C++ API。这主要是一个历史遗留问题,是为了保持向后兼容性。
注意:hpp是Header Plus Plus的简写,与 .h 文件类似。但与之不同的是,.hpp将*.cpp中的实现代码也写入其中,使得定义与实现都包含在同一文件中。这样做带来的好处显而易见,无需再将cpp文件添加到项目中编译,减少了编译次数,也不用发布烦人的lib,dll 文件,因此非常适合用来编写公用的开源库。
opencv.hpp文件:
#ifndef OPENCV_ALL_HPP
#define OPENCV_ALL_HPP
#include "opencv2/opencv_modules.hpp"
#include "opencv2/core.hpp"
#ifdef HAVE_OPENCV_CALIB3D
#include "opencv2/calib3d.hpp"
#endif
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。