1、配置opencv工程项目
主要是介绍如何通过vs2015编译opencv2.4.9源代码,具体步骤可以参考浅墨大神的blog链接如下:
OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
浅墨博客里用到的Cmake版本是2.8太低了,推荐下载3.4以上的。我之前就是下载的2.8版本导致我一直闹心因为2.8版本里根本没法在VS2015里配置,导致我一度以为我哪里错了,后来换了cmake3.15.5的版本立马就解决问题了
把链接给出来有需要的自己去下载:
链接:https://pan.baidu.com/s/1sNi8lMhdiSiWUc2AfYkLMg
提取码:ehm1
我按照步骤来的很成功一次就编译通过了,所有有什么问题大家就自行百度把,解答的也很多。
修改并调试opencv源码
编译好后打开opencv.sln解决方案在各模块里找到自己想要修改的函数,我们以imshow函数为例进行修改,使其显示图像的同时输出我们自己加的modify success这句话
我们找到imshow函数在opencv_highgui模块中的window.cpp
添加头文件 #include 还有using namespace std; 不然cout也是未定义的,然后加入这句话:
修改完成后,在opencv_highgui项目右击点生成 如果没有报错就是成功了。
最关键的步骤来了
我看了好多博客试了好几种方法都不行,最后成功了,虽然是个比较垃圾的办法,但起码解决了燃眉之急。
找到新生成的dll 我们是在debug下生成的所以就在debug下找 比如我的目录就是D:\opencv\bin\Debug,在文件夹里找到opencv_highgui2410d.dll,复制一份,然后再去找你自己要运行的的项目的文件夹的Debug下,直接和.exe文件放一起,再去运行程序时,我们修改的内容就添加进去了。只是这种方法需要每生成一次就要拷贝一次比较麻烦。但也比不成功要强。
实验结果
这样以后你想修改opencv里的源代码时就先去知道它在哪个模块里,然后去opencv.sln里修改它,将新生成的动态库直接放在你要运行的程序文件夹下就可以了。