环境:WinXp, VC6, OpenCV1.0因为是初次学习,所以希望在工程中追踪查看OpenCV中各种函数的源代码,按照一般的安装设置,使用OpenCV的函数实际上还是用动态链接库的形式在调用.
安装设置使用过程的理解:工程中cpp文件加入Opencv的头文件,工程设置中添加cv.lib, cvaux.lib, cxcor.lib...等导入库,工程设置中加入头文件lib文件搜索路径,系统环境变量中加入dll的路径...
由此,在debug的时候step into就无法追踪OpenCV函数内部的调用过程.一种思路是,在工程中把OpenCV相关的头文件和cpp文件都加入进来.由于不完全清除各个文件的内容,一股脑儿把所有的文件都加进来好像有些不妥.请教有没有什么好的方式能实现源代码的追踪(单步调式方式下详细查看函数调用过程以及函数内的代码).另外如何在工程中实现对OpenCV源代码的只读保护,防止意外修改.

解决方案 »

  1.   

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

  2.   


    是的,这确实能帮助定位该函数,但只有在错误的时候才会出现这些信息,而且每次只会出现一条信息.
    我的需要是,能够连续地自由地跟踪整个运行过程中涉及到的各个函数,好比在观察MFC的运行机制的时候,就可以通过DEBUG的丰富功能(设置断点,step into,over,out),来观察代码的运行轨迹.这样在一开始学习OpenVC的时候,就比较容易搞清一个函数里面的算法到底是如何实现的,各个参数的意义和效果是怎样的.
      

  3.   

    楼主的分析很有道理,也就是说OpenCV里面的函数是以dll的形式加载到可执行程序里面的,OpenCV里面的源代码仅仅是为了 让你自己分析用的而已,不知楼主看过OpenCV的源代码没有,其实OpenCV的函数封装很好的,你可以找到相应的函数,然后导入自己的代码中,使之成为自己代码的一部分,然后就可以单步调试了最起码 我一直是这样做的其实OpenCV里面的代码质量真的很高,非一般人能完全理解的
      

  4.   

    使用CMake重新编译opencv的源码,再使用编译出来的dll文件(而不是使用opencv自带的dll文件)即可