本文主要是介绍类似opencv2/core.hpp与opencv2/core/core.hpp的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以前一致有过这部分的疑惑,为什么有些地方会出现<opencv2/highgui.hpp>有些地方会出现<opencv2/highgui/highgui.hpp>,具体会有什么区别。
没有查到相关的解释,可能是认为这类问题太无聊了。。。
以下是自己的判断+猜测:
1.在存放opencv文件夹下/include/opencv2中:
会有各个模块命名的文件夹和同名的hpp文件;
然后比较一下文件夹内.hpp文件与文件夹外同名.hpp文件区别:
以core为例:
core文件夹内有大量hpp文件
打开opencv2/core/core.hpp文件:
包含了"opencv2/core.hpp"文件,因此打开"opencv2/core.hpp"与"opencv2/core/core.hpp"应该是同一个效果;
打开opencv2/core.hpp:
opencv2/core.hpp包含了一部分core文件夹内的一些其他"*.hpp"文件,同时自身也定义了许多函数:
因此推测:
opencv2文件夹下的"模块名.hpp"文件包含该模块的主要实现;
如需要用到core模块的基本功能,只需#include <opencv2/core.hpp>
若是不清楚opencv中需要用到哪些模块,可以直接#include <opencv2/opencv.hpp>
打开opencv2/opencv.hpp:
opencv.hpp类似于一个总纲,包含所有的功能模块;
这篇关于类似opencv2/core.hpp与opencv2/core/core.hpp的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!