前言
如果你还没有搭建环境请看我前一篇 《辉哥opencv学习之路【2】--环境搭建》 走好不送!
不管学习什么,如果能先运行起一个例子或别人的程序,心中一定会更受鼓舞,更何况我们可以从别人的代码中学到很多东西,
虽然运行别人的例子不是什么难事,但是对于刚接触opencv和vs的人来说确实比较困难,像我以前都是一直在elicpse下写java,
但是现在要用vs写c++突然有些不适应。
我也看网上有很多人下载了一个别人的程序但是却运行不起来,因为openc的版本比较混杂 但是这里我可以告诉大家opencv是向下兼容的
也就是2.4.5理论是可以运行所有版本的opencv写的程序的 我为了能运行别人的例子也走了很多弯路琢磨了几天才搞定,希望能帮助你尽快走进opencv的殿堂!
准备条件
我当时为了运行例子 我将opencv1.0到2.4.5的安装包都下载下来了 然后全部安装,当然你完全不用这么做,
但是我推荐如果你想跟确定,而且条件可以的话你可以下载并安装 opencv1.0 opencv 2.0 和 opencv 2.4.5
因为根据我实践的经历 这三个版本的目录结构 能代表所有版本
ps:这是我曾安装过的opencv的版本
第一步
这里我用我写的一个图片显示的例子作为教程,其他的程序也一样 只要是vs下的基本配置都是这样
例子下载地址为: 附件1
下载例子 然后解压至任意目录:这是我们可以看到例子中包含有vs的工程文件 这里需要注意一下 据我的实践经验,一般别人程序工程文件分为2种,一种是vs编写的
一种是在cv++6.0 下的 vs的工程中都会有一个 sln 文件 用vs打开即可 注意我这个是vs2012的工程 如果你没有vs2012 应该也没关系 因为这里的版本并不是很重要
你完全可以继续往后学习方法,基本一样! 还有一种是vc++6.0的工程 这种工程不能用vs打开 你需要安装cv++6.0环境打开 当然配置也和vs大同小异 如果你遇到问题
请留言和给我邮件,我会考虑是否需要补充cv++6.0的配置教程!
用你的vs打开这个工程 这是他会提示你 自动把这个工程升级到和你vs版本对应的版本。
当然如果你vs版本和工程一样 那就不用 或者你vs版本低于工程版本 这种情况我没有遇到过 因为我的vs2012已经是最新的 他是像下兼容vs其他版本工程文件的
这里直接点确定让它升级就好
然后vs就开起了这个工程 但是会发现有很多错误 这就是还没有配置环境的问题, 这里要提一下 opencv的每个工程都是独立配置的
所以尽管你已经搭建好了opencv的环境 但是新建一个工程 还需要重新配置一下!
然后我们其实可以通过一个地方看这个代码使用opencv什么版本编写的 右键-〉属性-〉链接器-〉输入
然后我们可以看见 opencv_calib3d245d.lib 这样的lib文件 这里 245 就是opencv的版本号 d是指现在是Debug模式下的lib库
好现在我们知道了 这个工程是用的那个opencv版本了 (然后我们去安装对应版本,,!! 呵呵开玩笑的 我说了2.4.5兼容其他版本 但是我们需要改点东西)
记住你打开的别人的工程 它可能是这样写的 比如:
highgui.lib 这是1.0的opencv
highgui120.lib 这是1.2的opencv
highgui200.lib 这是2.0的opencv
注意貌似只有2.3以后的才会写成 opencv_calib3d230.lib 这种形式, 自己对比一下 应该能看懂吧
这些.lib文件都在 lib文件里 你根据它工程里这个地方的lib文件名字 一定能在2.4.5 的lib文件下找到差不多的名字那个.lib文件
嗯 也就是 你把他的lib文件名字 换成你lib文件下对应的名字
比如 你打开工程 这里写了一个 highgui.lib 然后你需要改成 opencv_highgui245.lib
好 然后保存 然后点击右边c++目录 这个里面的东西和昨天环境的搭建就一样了 这里给出我的配置作为参考 如果你完成了上一篇的环境搭建
并且成功运行 那么这里你把你配置的那个工程相应位置的东西,复制 粘贴到 这个工程相应位置即可
环境变量里添加:F:\opcv\opencv2.4.5\bin\Debug;F:\opcv\opencv2.4.5\bin\Release
可执行目录:
右边 可执行目录文件 添加 你上面那个bin目录位置/Release 和 bin目录位置/Debug
包含目录
你opencv文件夹下的include 和 include/opencv 和 include/opencv2
然后还有modules文件下 所有文件里的 include目录 有很多是吧 没事慢慢加吧!
库目录:F:\opcv\opencv2.4.5\lib\Debug;$(LibraryPath)
opencv_calib3d245d.lib
opencv_contrib245d.lib
opencv_core245d.lib
opencv_features2d245d.lib
opencv_flann245d.lib
opencv_gpu245d.lib
opencv_highgui245d.lib
opencv_imgproc245d.lib
opencv_legacy245d.lib
opencv_ml245d.lib
opencv_nonfree245d.lib
opencv_objdetect245d.lib
opencv_photo245d.lib
opencv_stitching245d.lib
opencv_ts245d.lib
opencv_video245d.lib
opencv_videostab245d.lib
对了最后如果前面搭建环境时没有没有 把bin加入到环境变量 这里需要加一下 加过了就不用了额!
然后点击生成 然后运行就行了!运行结果如下
到这里 应该就能够运行别人的程序了
由于写作比较仓促 有错别字和错误的地方请见谅!