当我们有时想查看opencv自带的函数的源代码,比如函数cvCreateImage, 此时我们选中cvCreateImage, 点击鼠标右键->转到定义,我们会很惊讶的发现为什么只看到了cvCreateImage的一个简单声明,而没有源代码呢?这是因为openCV将很多函数被加入了函数库,并被编译成了dll,所以只能看到函数申明,没法看到源代码。下面我们详细解释并讲解如何利用cmake查看opencv的源代码。

1:解释原因

要想解释这个,我们必须得熟悉opencv的安装目录<opencv的安装见我这篇blog:http://blog.csdn.net/lu597203933/article/details/11175811>。

我的安装目录在D:\Program Files\OpenCV2.4.3\opencv。在这个目录下面还有很多子目录:3rdparty、android、build,data、doc、include、modules、samples和很多cmake文件。build目录是编译生成的目录,就是用openCV源代码编译生成的2进制库文件集(dll、lib和入口头文件include)。对于编程来说,仅仅需要build这一个文件夹就可以了。那么其他文件夹是用来干什么的呢?其实源代码就包含在这些文件夹下面,因为build文件夹就是在其他文件夹的基础上CMake编译生成的。大部分源代码放在modules文件夹下例如,core文件夹下就包含了基本数据类型的定义,imgproc文件夹下包含了常用的数字图像处理函数源代码:如cvCanny()、cvSobel()。

2:如何利用cmake查看opencv的源代码

<1>cmake可以到官网http://www.cmake.org去下载,安装一切按默认设置,一路点击“下一步”即可;

<2>打开Cmake工具,如下图所示:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

)点击“Where is the source code”后面的那个“Browse Source...”按钮,选择OpenCV的安装路径;例如,笔者的Opencv2.0安装路径为C:\opencv2.0src\OpenCV2.0;

)点击“Where to build the binaries”后面的那个“Browse Build...”按钮,选择CMake生成的工程文件所在的路径;例如,笔者选择的路径为:C:\opencv2.0src\OpenCV2.0VS2008;

如下图所示:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

)点击左下方的“Configure”按钮,选择编译平台,如笔者的机器上安装的是VS2008,因此,就选择Visual Studio 9 2008。如下图所示:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

)点击“Finsh”按钮,出现如下画面:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

)再次点击“Config”按钮,结果如下所示:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

) 点击“Generate”按钮,结果如下:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

)至此,就生成了你所需要的Visual Studio工程文件了;例如,笔者选择的工程文件所在的路径C:\opencv2.0src\OpenCV2.0VS2008就是如下的样子:

opencv学习_15 (利用cmake查看opencv的源码)-LMLPHP

看到了opencv.sln工程了,用vs打开它,需要相应的函数的源码,在里面搜索查看就可以了。

总结为: 用CMake导出opencv 源码,生成VC++项目,然后用vs打开工程,去里面搜索整个工程。

作者:小村长  出处:http://blog.csdn.net/lu597203933 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:小村长zack, 欢迎交流!)

05-04 05:05