如何学习opencv源码
当你在使用opencv时,看到一个函数有没有想去了解他的源码,而又无从下手?这里我将带你脱离这种尴尬的境遇!
面对这个问题,我自己也查找过许多的资料,网上有这样一种做法,步骤如下:
找到自己的opencv所在的路径,D:\opencv\opencv\sources\modules在这个文件夹里去找寻自己所需要的的函数源码,但时本人不推荐这种办法,因为在这里还有相当一部分函数是找不到源码的。所以,需要推荐另外一种办法:
下载安装cmake
1,camke的官网:http://www.cmake.org/上下载到,首先转到其下载页面。如果登不上官网,可以去这里
(本人就是用这个链接下的,请放心使用!)
2,安装camke,这个将不多说了。。。
3,打开camke,
击红色方框内的“Browse Source”按钮,在弹出的对话框中指定出OpenCV安装时源代码的存储路径。
以当前最新版本的OpenCV 2.4.8安装在D:\Program Files下为例,则在此选择路径:D:\Program Files\opencv\sources
4,
点击红色方框内的“Browse Build”按钮,在弹出的对话框中指定我们存放生成的opencv解决方案的路径。比如F:/opencv。
5,
第一次点击Configure按钮。
首先选定“Use default native compilers”,然后,我们可以发现下拉列表中提供了几十种编译器给我们选择,因为我们安装了Visual Studio,会默认为我们选择好对应版本的Visual Studio编译器,比如Visual Studio 10(即待会儿会生成对应VS2010的sln解决方案)
确认无误后,单击“finish”按钮
6,
看到进度条读到尽头,出现了Configuring done字样,第一次的源码配置就完成了
7,
这样,就只剩下点一次Generate按钮,来生成最终的解决方案了:
8,
看到Generating done字样,就表示大功告成,可以去之前我们指定的F:\opencv下找寻我们生成的解决方案了:
好了,大功告成,可以读你想读的源码了 !!
补充;以下是我在阅读templmatch函数源码的一些收获:
1,cvRound,函数的一种,对一个double型的数进行四舍五入,
2,DFT离散傅里叶变换的缩写
3,“1 << 3”表示2进制1向左移三位,“&”表示位与”运算是“位运算”的一种,运算法则是在二进制数下,相同位的两个数字都为1,则为1;若有一个不为1,则为0。&运算通常用于二进制取位操作,例如一个数 & 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶
4,opencv源码中宏定义特别多,看的眼花缭乱,,,