【C++&&OpenCV】解决cvLoadImage等函数不能进行单步调试的OpenCV配置问题

本文是在用透视函数cvWarpPerspective实现图像平移时,发现该函数在向左平移时出现bug;本来只准备向左平移50个像素的,而结果却向左平移了100个像素。因此想看看开源的OpenCV中是如何实现cvWarpPerspective的,可是该程序却不能进入cvWarpPerspective函数内部代码进行单步调试;于是网络搜索一番后得到答案,解决了对OpenCV自带函数进行内部单步调试的问题。

基本配置方案:大致参见http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1
首先需要下载软件(两个):OpenCV-2.1.0-win32-vs2008.exe和cmake-2.8.6-win32-x86.exe
步骤一:安装OpenCV;安装cmake;
步骤二:用cmake编译OpenCV(提示:最下面提示框中出现Configuring done和Generating done才算完成编译)
步骤三:配置VS2008
【工具-选项-项目和解决方案-VC++目录】
1)选“包含文件”,加入
    D:\Program Files\OpenCV2.1\vc2008\include\opencv
2)选“库文件”,加入
    D:\Program Files\OpenCV2.1\vc2008\lib\Release
    D:\Program Files\OpenCV2.1\vc2008\lib\Debug
3)选“源文件”,加入
    D:\Program Files\OpenCV2.1\src\ml
    D:\Program Files\OpenCV2.1\src\highgui
    D:\Program Files\OpenCV2.1\src\cxcore
    D:\Program Files\OpenCV2.1\src\cvaux
    D:\Program Files\OpenCV2.1\src\cv
步骤四:配置环境变量(可以用户和系统变量两个都加入下面路径)
    D:\Program Files\OpenCV2.1\vc2008\bin\Debug;D:\Program Files\OpenCV2.1\vc2008\bin\Release;   
步骤五:配置OpenCV项目test1属性...
    【配置属性-连接器-输入】“附加依赖项”中加入
    cv210.lib cxcore210.lib highgui210.lib
步骤六:注销用户,使系统变量生效

疑惑:

  • 安装OpenCV和编译OpenCV是不一样的,虽然安装OpenCV后已经可以使用其函数库
  • 编译OpenCV时为什么需要同时编译Debug和Release两个版本,它们各自用途与区别是什么?
  • 安装OpenCV时大小才一百多M,但编译完OpenCV时大小却上G了,相差如此悬殊?
  • 要对一个函数库中的函数进行单步调试,需要具备些什么条件?
  • 如果你查cvLoadImage(),那么你可以查到该函数的实现在d:\Program Files\OpenCV2.1\src\highgui\loadsave.cpp文件中,(本来还以为会在vc2008文件夹的某个编译后生成的子文件夹下,小震惊下);由此说明即使编译后,原来OpenCv安装时产生的文件还是不能丢。
  • 如果自己对某个库函数进行修改,又该如何使其生效?

参考:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=11212

你可能感兴趣的:(opencv)