前言


如果你还没有搭建环境请看我前一篇 《辉哥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的版本


opencv创建按钮 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的配置教程!




opencv创建按钮 opencv怎么运行代码_3d_02




用你的vs打开这个工程 这是他会提示你 自动把这个工程升级到和你vs版本对应的版本。


当然如果你vs版本和工程一样 那就不用 或者你vs版本低于工程版本 这种情况我没有遇到过 因为我的vs2012已经是最新的 他是像下兼容vs其他版本工程文件的

这里直接点确定让它升级就好




opencv创建按钮 opencv怎么运行代码_工程文件_03




然后vs就开起了这个工程 但是会发现有很多错误 这就是还没有配置环境的问题, 这里要提一下 opencv的每个工程都是独立配置的 

所以尽管你已经搭建好了opencv的环境 但是新建一个工程 还需要重新配置一下!




opencv创建按钮 opencv怎么运行代码_文件名_04



然后我们其实可以通过一个地方看这个代码使用opencv什么版本编写的 右键-〉属性-〉链接器-〉输入


然后我们可以看见 opencv_calib3d245d.lib 这样的lib文件  这里 245 就是opencv的版本号 d是指现在是Debug模式下的lib库


好现在我们知道了 这个工程是用的那个opencv版本了 (然后我们去安装对应版本,,!! 呵呵开玩笑的 我说了2.4.5兼容其他版本 但是我们需要改点东西)



opencv创建按钮 opencv怎么运行代码_工程文件_05






记住你打开的别人的工程 它可能是这样写的 比如: 


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



opencv创建按钮 opencv怎么运行代码_文件名_06




好 然后保存 然后点击右边c++目录 这个里面的东西和昨天环境的搭建就一样了  这里给出我的配置作为参考 如果你完成了上一篇的环境搭建


并且成功运行 那么这里你把你配置的那个工程相应位置的东西,复制 粘贴到 这个工程相应位置即可



opencv创建按钮 opencv怎么运行代码_opencv_07



环境变量里添加: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加入到环境变量 这里需要加一下 加过了就不用了额! 


然后点击生成 然后运行就行了!运行结果如下



opencv创建按钮 opencv怎么运行代码_opencv创建按钮_08





到这里 应该就能够运行别人的程序了 


由于写作比较仓促 有错别字和错误的地方请见谅!