关于调试opencv的那些坑

1,将oepencv搭建到visual studio上
关于这个过程网上有好多教程,我推荐的是如下的一篇博客:
http://blog.csdn.net/tfygg/article/details/50199319
这里首先第一个坑是CMake编译报错的问题,首先应该先查清楚自己的CMake版本的Configure是否有自己搭建的visual studio版本,如果没有则去官网下载相应的版本,否则选择别的版本会报错。

2,单步调试

首先创建自己的一个opencv项目

这里写图片描述

然后另打开Opencv项目工程,如图:

这里写图片描述

确定一个你自己项目里需要调试的一个函数,比如我需要调试我的项目ConsoleApplication1当中的SVM::create()函数,然后找到该函数与之对应的opencv模块,一般通过命名情况,或者是vs下方的输出窗口的调用dll情况确定函数所在的模块,dll和模块名是对应的。我的svm::create函数对应的项目模块是opencv_ml,这个模块写了create的源码。

找到对应模块后,需要进行一些设置,比如opencv_ml,右击该项目,选择设置为启动项,然后右击选择属性弹出如下对话框:

这里写图片描述

修改命令以及调试器类型这俩个选项
命令:你自己项目的.exe文件的路径。首先你先生成一下你自己的项目,然后在项目文件夹下会有一个exe的项目执行文件,将该 路径设置为命令路径
调试器类型:混合

设置完以后,你就可以在你想查看的opencv函数里设置断点,然后点击opencv项目的执行调试的绿色箭头,如果你的项目调用了opencv的方法,就会进入断点了。

如果修改opencv的源码,想要让修改生效首先需要再生成一下Opencv的项目,让修改生效,然后再进行调试。