对于opencv全面貌的认识和理解
1、opencv其实最开始只有源码,也就是sources中的代码,sources中有个modules,进入里面是各个我们平常使用的模块,如下图。

进入任意一个模块,比如calib3d,其中有include,头文件,有src,实现头文件定义的类的cpp,src文件夹下面还有一个main函数,从理论上来说我们可以把calib3d中的头文件和cpp放在一个vs的项目中,来生成解决方案,也就是做编译和执行。
但是opencv不像我们这样子做,opencv要在不同的操作系统上编译出适合本系统的静态链接库和动态链接库,之后如果我作为一个程序员,想调用calib3d的头文件中的某一个类,那么就#include <opencv2/calib3d/calib3d.hpp>就可以了。
也就是说,我们没有必要拿calib3d中的所有cpp和头文件都放在解决方案中,一个个来编译,只需要简单的一行#include调用头文件就可以了。
链接库挺方便的,关于为什么要使用链接库而不是一大堆的cpp和头文件,这个链接给出了答案https://segmentfault.com/a/1190000008634703,谢谢作者的分享。
2、下载的源码sources文件夹中必定有cmakelists,这是cmake的根据。在linux系统上,cmake指令根据cmakelists生成makefile,然后make指令根据生成的makefile进行编译和链接,生成各种链接库,静态链接库是.a格式,动态链接库是.so格式。之后就直接调用这些链接库来执行我们自己的代码。
在windows系统上,cmake-gui根据cmakelists生成vs的opencv.sln,接着生成所有项目的解决方案,生成解决方案的过程其实也就是编译和链接,生成的静态链接库是.lib格式,动态链接库是.dll格式。
搞清楚一个东西的感觉真爽~之后有什么对于opencv的新认识再来补充了
对于opencv全面貌的认识和理解的更多相关文章
- openCV中直方图均衡化算法的理解
直方图均衡化就是调整灰度直方图的分布,即将原图中的灰度值映射为一个新的值.映射的结果直观表现是灰度图的分布变得均匀,从0到255都有分布,不像原图那样集中.图像上的表现就是对比度变大,亮的更亮,暗的更 ...
- Mysql----关于内联,左联,右联,全联的使用和理解
准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...
- 【洛谷】P1308 统计单词数-全AC题解(易理解
弟弟的混乱代码(易理解 大概 思路: 循环b(被找的字符串),遇空格比较两空格间的长度是否与a(需要查找的字符)相等:不相等继续循环:相等比较内容是否相同(倒数比较,不一样直接退出 ,直到比较到第一个 ...
- opencv学习笔记——Scalar数据结构的理解
首先看一下Scalar的定义 typedef struct Scalar { ]; }Scalar; 可以看到,Scalar是一个由长度为4的数组作为元素构成的结构体,Scalar最多可以存储四个值, ...
- opencv配置(2.49)
转载自浅墨大神http://blog.csdn.net/poem_qianmo/article/details/19809337 OpenCV2.4.9和2.4.8的配置几乎一样,唯一的区别在下文中的 ...
- (转)OpenCV 2.4.8 +VS2010的开发环境配置
转自: http://blog.csdn.net/poem_qianmo/article/details/19809337 自己可能需要再进行修改 本系列文章由zhmxy555(毛星云)编写,转载请 ...
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...
- 【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置
目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分 ...
- opencv环境变量配置
本文章由@浅墨_毛星云 出品 原文文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨) 微博:ht ...
随机推荐
- 假期训练七(hdu-2845 dp,hdu-1846,2188 巴什博奕)
题目一:传送门 思路:动态规划,从每一行来看,每次更新求出这一点的最大值,dp[i]=MAX(dp[i-1],dp[i]+dp[i-2]),不会出现 两个数字相邻的情况:先对行进行更新,再对列进行更新 ...
- Elastic serarch 安装
1.安装 1.1下载最新的 elasticsearch-6.5.4.tar.gz 1.2解压 tar -zxvf elasticsearch-6.5.4.tar.gz 1.3 创建用户 elastic ...
- 在vue或者react中使用express框架
在react 或者 vue项目中使用express框架 1.创建vue或者 react 项目 2.在项目中创建server文件夹,创建server.js //require()方法引入express模 ...
- gj12-2 协程和异步io
12.3 epoll+回调+事件循环方式url import socket from urllib.parse import urlparse # 使用非阻塞io完成http请求 def get_ur ...
- js获取标签下标
<body> <div class="titTab"> <span>低</span> <span>中</span& ...
- SSM_CRUD新手练习(1)创建项目
最近看了SSM框架,网上找了个入门视频的比较简单的小项目熟悉一下框架.现在把整个过程记录下来. 1.创建Maven工程,注意我们选择的是simple project就够了. 这样我们的Maven项目就 ...
- PAT甲级 1122. Hamiltonian Cycle (25)
1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...
- poj 2192 Zipper
题目 刚开始本来觉得可以用队列来写,但是 例如 ta te teta,ta的t先出队列那就不行了,所以还得用dp dp[i][j] 表示A前i个字符与B前j个字符是否能构成C前i+j个字符 要使 dp ...
- 微信小程序-button组件
主要属性: 注:button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;} 效果图: ml: <!--默认的but ...
- Scala_模式匹配
模式匹配 简单匹配 Scala的模式匹配最常用于match语句中.下面是一个简单的整型值的匹配实例 object TestMatch { def main(args: Array[String]): ...