对于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-1394(线段树&逆序数的性质和求法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意: 给出一个序列,一对逆序数就是满足i<j&&a[i]>a[ ...
- caffe 笔记
caffe模块: blob:caffe中数据的封装,用于layer上流动 layer:输入层.输出层.神经网络层的抽象 net:神经网络结构,将layer层叠关联起来 solver:定义神经网络训练和 ...
- vba中布尔类型、字符串操作
在vba中,bool类型数据可以参与数学运算,true为-1,false为0 Sub mysub() Dim mybool As Boolean Debug.Print Debug.Print myb ...
- IntelliJ IDEA 2017版 编译器使用学习笔记(六) (图文详尽版);IDE快捷键使用
一.alter + enter使用 应用于很对场景不知道如何操作代码时使用 1.场景一:自动创建函数 调用一个没有的函数的时候,alter+enter,弹出自动创建函 ...
- Mysql中Left Join Right Join Inner Join where条件的比较
建立一对多的表 company 和 employee company表 id name address 1baidu北京 2huawei深圳 3jingdong北京 4tengxu ...
- linux下运算的几种方法
1.expr 1.1 最简单的用法 yan@yan:~$ \* yan@yan:~$ 1.2 bash脚本对于expr yan@yan:~$ cat expr1.sh #!/bin/bash PATH ...
- DOS下如何打开程序
cd c: #先切回主盘,因为最开始在C:\Users\Administrator这个目录下 cd “指定文件所在的盘:” #切换到文件所在盘 print "文件目录&quo ...
- 为什么要用GCD-Swift2.x
为什么要用GCD-Swift2.x 当今世界,多核已然普及.但是APP却不见得很好的跟上了这个趋势.APP 想要利用好多核就必须可以保证任务能有效的分配.并行执行可以让APP同时执行很多 的任务.这个 ...
- CentOS 网络设置修改 2
一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容 DEVICE=eth0 #描 ...
- 刚部署的程序加载不出来css,js以及图片
刚部署的程序加载不出来css,js以及图片,解决方式 需要在配置中加入静态资源 方法一: controller.xml中加入 <mvc:annotation-driven/> <mv ...