【OpenCV笔记 03】OpenCV头文件探秘
来源:互联网 发布:js获取当前登录用户名 编辑:程序博客网 时间:2024/05/22 14:26
一、hpp文件的说明:
hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。
1、是Header Plus Plus 的简写。a)不可包含全局对象和全局函数
2、与*.h类似,hpp是C++程序头文件 。
3、是VCL 专用的头文件,已预编译。
4、是一般模板类的头文件。
5、一般来说,*.h里面只有声明,没有实现,而*.hpp里声明实现都有,后者可以减 少.cpp的数量。6、*.h里面可以有using namespace std,而*.hpp里则无。
7、*.hpp要注意的问题有:
由于hpp本质上是作为.h被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。要避免这种情况,需要去除全局对象,将全局函数封装为类的静态方法。
b)类之间不可循环调用
二、文件探秘
在使用OpenCV3.0编写代码的过程中,总会遇到类似于下面的头文件,
#include<opencv2/opencv.hpp>出于好奇,于是辗转到安装目录下招待该头文件,其代码如下
#ifndef __OPENCV_ALL_HPP__#define __OPENCV_ALL_HPP__#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/photo.hpp"#include "opencv2/video.hpp"#include "opencv2/features2d.hpp"#include "opencv2/objdetect.hpp"#include "opencv2/calib3d.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/videoio.hpp"#include "opencv2/highgui.hpp"#include "opencv2/ml.hpp"#endif
这样就比较好理解了,头文件中包含了其他各模块的头文件,依次是
core:核心功能模块,
imgproc:图像处理模块;
photo:图像修复和图像去噪模块,
video:视频分析组件,包括运动估计、背景分离、对象跟踪等,
features2d:2D功能框架,包括特征检测和描述等
objdetect:目标检测模块,包括Cascade Classification和Latent SVM,
calib3d:主要包括相机校准(calibration)和三维重建等,
imgcodecs:用于图像文件的载入(imread)和输出(imwrite)
videoio:视频流的输入和输入
highgui:高层图形用户界面(GUI),包括媒体输入输出、视频捕捉、图像交互界面接口、图像和视频的编码解码等,
ml:机器学习模块,基本上是统计模型和分类算法,包括SVM、 NN、K-Nearest Neighbors等,我前面的一片翻译博文中有提到。
至于各个模块的具体内容,可以到安装目录下找到头文件(C:\openCV\opencv\build\include\opencv2),然后打开查看详细代码,每个文件犹如一片海洋,你可以尽情享受徜徉在代码世界的乐趣。
1 0
- 【OpenCV笔记 03】OpenCV头文件探秘
- OpenCV头文件分析
- Opencv头文件记要~
- opencv之头文件
- OpenCv头文件分析
- opencv头文件
- “opencv.hpp”头文件
- opencv头文件分析
- opencv头文件
- 【opencv】opencv之头文件分析【转】
- OpenCV编程->头文件分析
- opencv 需要的头文件
- OpenCV编程头文件分析
- opencv中头文件详解
- openCV之头文件分析
- openCV之头文件分析
- OpenCV常用的头文件
- openCV之头文件分析
- Android手机wifi显示的开关Switch怎么做的
- uC/OS-II内核架构解析---uC/OS-II系统核心
- fibonacci数列 java实现
- Codeforces 689.C Mike and Chocolate Thieves 二分+数学
- java之静态
- 【OpenCV笔记 03】OpenCV头文件探秘
- uC/OS-II内核架构解析---uC/OS-II任务管理
- hdu 4763 Theme Section 扩展kmp
- The program 'java' can be found in the following packages
- 数据泵expdp,impdp
- c# fixed 语句
- SpringMVC入门之一
- uC/OS-II内核架构解析---uC/OS-II通信与同步
- hadoop