如何在OpenCV中调试追踪源代码

lixing01 2010-10-08 10:19:55
环境:WinXp, VC6, OpenCV1.0

因为是初次学习,所以希望在工程中追踪查看OpenCV中各种函数的源代码,按照一般的安装设置,使用OpenCV的函数实际上还是用动态链接库的形式在调用.
安装设置使用过程的理解:工程中cpp文件加入Opencv的头文件,工程设置中添加cv.lib, cvaux.lib, cxcor.lib...等导入库,工程设置中加入头文件lib文件搜索路径,系统环境变量中加入dll的路径...
由此,在debug的时候step into就无法追踪OpenCV函数内部的调用过程.

一种思路是,在工程中把OpenCV相关的头文件和cpp文件都加入进来.由于不完全清除各个文件的内容,一股脑儿把所有的文件都加进来好像有些不妥.

请教有没有什么好的方式能实现源代码的追踪(单步调式方式下详细查看函数调用过程以及函数内的代码).另外如何在工程中实现对OpenCV源代码的只读保护,防止意外修改.
...全文
1250 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daven172 2012-03-02
  • 打赏
  • 举报
回复
使用CMake重新编译opencv的源码,再使用编译出来的dll文件(而不是使用opencv自带的dll文件)即可
xiaozchina 2010-12-22
  • 打赏
  • 举报
回复
楼主的分析很有道理,也就是说OpenCV里面的函数是以dll的形式加载到可执行程序里面的,OpenCV里面的源代码仅仅是为了 让你自己分析用的而已,不知楼主看过OpenCV的源代码没有,其实OpenCV的函数封装很好的,你可以找到相应的函数,然后导入自己的代码中,使之成为自己代码的一部分,然后就可以单步调试了。。。最起码 我一直是这样做的。。。其实OpenCV里面的代码质量真的很高,非一般人能完全理解的。。。
lixing01 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengbingchun 的回复:]

如果你调用OpenCV函数出现错误,它都会提示错误的相关信息,可以根据这个信息再去c++文件里看该函数的源代码
[/Quote]

是的,这确实能帮助定位该函数,但只有在错误的时候才会出现这些信息,而且每次只会出现一条信息.
我的需要是,能够连续地自由地跟踪整个运行过程中涉及到的各个函数,好比在观察MFC的运行机制的时候,就可以通过DEBUG的丰富功能(设置断点,step into,over,out),来观察代码的运行轨迹.

这样在一开始学习OpenVC的时候,就比较容易搞清一个函数里面的算法到底是如何实现的,各个参数的意义和效果是怎样的.
fengbingchun 2010-10-08
  • 打赏
  • 举报
回复
如果你调用OpenCV函数出现错误,它都会提示错误的相关信息,可以根据这个信息再去c++文件里看该函数的源代码

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧