【OpenCV】opencv2.4.10配置vs2010软件的心得

3 篇文章 0 订阅
2 篇文章 0 订阅

                       关于opencv配置vs软件的心得

   在这之前我先介绍一下VS的版本,vc10表示是VS2010,vc11表示VS2012,vc12表示VS2013.

1.opencv下载与安装

        首先你可以到opencv的官方网站下载(免费的),opencv的版本很多,可以找一个网络上配置教程比较多的版本,因为这样方便你解决问题。还有一个问题,那就是从官网下的opencv只支持vc11/vc12,那样你可以选择别的,比如opencv2.4.10可以支持vc10/vc11/vc12,opencv2.4.12支持vc11/vc12了。因为不喜欢vs12的风格,我还是坚持用vs10了。

       opencv下载官网:http://opencv.org/

        下载后直接解压到你想安装的盘,解压即安装,点击Extract解压。解压后大概是一个3Gb左右的文件。

2.opencv的Windows环境变量配置

       首先右击桌面上的“计算机”,选“属性”,然后选择“高级系统设置”。



       接着点击“环境变量”进入。


         在这里,可以先在“用户变量”这里先新建一个OPENCV的变量。这里是为了使后面的设置简单点。变量值是你安装的路径,按照自己的路径更改即可。

          变量名:OPENCV

           变量值:D:\opencv2.4.10\opencv\build

          然后,在“系统变量”里找到“path”这个变量,点击编辑,然后在最后加上这句:    ;%OPENCV%\build\x64\vc10\bin   注意分号是必须的,用于隔开路径。

            这样我们就把Windows环境变量设置好了。

                                                            


3.配置vs2010

           这里教一种一次配置永久使用的方法。

     3.1建立C++工程

          第一步,打开VS2010,新建一个C++的工程。点击“文件”->“Win32控制台应用程序”,填写工程的名称,选择保存路径。

然后点击“下一步”。



           然后,选中“空项目”,再点完成。这样C++工程建立完毕。


            再建一个C++程序

 

3.2设置属性管理文件

     3.2.1在"Debug|Win32" 创建“OpencvDebugeconfig”配置文件

             第二步,点击“属性管理器”,我们要在"Debug|Win32"和"Release|Win32"添加一个配置文件。


             右击“Debug|Win32”,点击“添加新项目属性表”。命名为“OpencvDebugeconfig”,然后点击添加


               然后选择“OpencvDebugeconfig”文件,点击“属性”进行设置

 

        选择“VC++目录”->分别在“包含目录”和“库目录”设置如下:

          包含目录:添加3个路径:

              D:\opencv2.4.10\opencv\build\include

              D:\opencv2.4.10\opencv\build\include\opencv2

              D:\opencv2.4.10\opencv\build\include\opencv

        库目录:添加1个路径:

              D:\opencv2.4.10\opencv\build\x86\vc10\lib

 

                                                      

 

              然后在“链接器”->“输入”->“附加依赖项”中输入如下:

              至此,“Debug|Win32”里的“OpencvDebugeconfig”就设置完全了。

opencv_ml2410d.lib

opencv_calib3d2410d.lib

opencv_contrib2410d.lib

opencv_core2410d.lib

opencv_features2d2410d.lib

opencv_flann2410d.lib

opencv_gpu2410d.lib

opencv_highgui2410d.lib

opencv_imgproc2410d.lib

opencv_legacy2410d.lib

opencv_objdetect2410d.lib

opencv_ts2410d.lib

opencv_video2410d.lib

opencv_nonfree2410d.lib

opencv_ocl2410d.lib

opencv_photo2410d.lib

opencv_stitching2410d.lib

opencv_superres2410d.lib

opencv_videostab2410d.lib


3.2.1在"Release|Win32" 创建“OpencvReleaseconfig”配置文件

                同创建“OpencvDebugeconfig”的方法创建“OpencvReleaseconfig”属性,“OpencvReleaseconfig”中的“包含目录”和 “库目录”和“OpencvDebugeconfig”一样。

          如下:

                选择“VC++目录”->分别在“包含目录”和“库目录”设置如下:

                包含目录:添加3个路径:

                   D:\opencv2.4.10\opencv\build\include

                   D:\opencv2.4.10\opencv\build\include\opencv2

                   D:\opencv2.4.10\opencv\build\include\opencv

                库目录:添加1个路径:

                  D:\opencv2.4.10\opencv\build\x86\vc10\lib

 

注意,“OpencvReleaseconfig”配置文件在“链接器”->“输入”->“附加依赖项”中输入如下:

opencv_objdetect2410.lib

opencv_ts2410.lib

opencv_video2410.lib

opencv_nonfree2410.lib

opencv_ocl2410.lib

opencv_photo2410.lib

opencv_stitching2410.lib

opencv_superres2410.lib

opencv_videostab2410.lib

opencv_calib3d2410.lib

opencv_contrib2410.lib

opencv_core2410.lib

opencv_features2d2410.lib

opencv_flann2410.lib

opencv_gpu2410.lib

opencv_highgui2410.lib

opencv_imgproc2410.lib

opencv_legacy2410.lib

opencv_ml2410.lib

            然后保存“OpencvDebugeconfig” 和“OpencvReleaseconfig”配置文件,


          这样设置就全部完成了。

4.程序测试

 

         测试程序,在C++程序中写如下:

#include <iostream> 

#include <opencv2/core/core.hpp> 

#include<opencv2/highgui/highgui.hpp> 

using namespace cv;   

int main() 

   Mat img=imread("pic.jpg");//读入一张图片

   namedWindow("Test");     //创建一个名为Test窗口

   imshow("Test",img);   //窗口中显示图像

   waitKey(5000);            //等待5000ms后窗口自动关闭

}

 

5.我遇到的问题

       1.>LINK : fatal error LNK1123:转换到 COFF期间失败:文件无效或损坏

         我使用了方法二。

          问题说明:

         当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不会恢复.NET 4.0。

        l当VS2012安装后,VS2010的cvtres.exe就无法使用了。如果你的PATH环境变量中VS2010的工具路径第一个出现,而且链接器需要将.res文件转换为COFF 对象格式,就会导致LNK1123错误。

        l当VS生成PE文件头时,使用的cvtres.exe版本错误,不能与当前的.NET平台兼容。

          解决方案:

           参考:

           http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c

 

           因为是cvtres.exe版本错误导致的结果,所以凡是能使VS链接器找到正确的cvtres.exe版本的方法都可以解决该问题。或者使VS链接器不生成COFF的方法都可以。

【方法一】

            当前系统中存在两个cvtres.exe文件,版本不同。让VS2010使用.NET 4.5的cvtres.exe程序。

      具体步骤:

        重命名或删除:(vs2010安装的位置)C:\Program Files (x86)\Microsoft Visual Studio10.0\VC\bin\cvtres.exe

        这样C:\Windows\Microsoft.NET\Framework\v4.0.30319(.NET 4.5)中的cvtres.exe文件就可以被VS2010使用。

【方法二】

       解决方法如下:

         项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。

          说明:这种方法每个工程均需要修改配置。

【方法三】

          安装:VS2010 SP1. 该版本应该是能使用.NET 4.5的,并配有正确的cvtres.exe版本。

          注意:安装VS 2010 SP1 时会移除64-bit 编译器. 通过安装 VS 2010 SP1 compiler pack 能够重新获得。

【方法四】

         卸载.NET 4.5,重装.NET 4.0

2. Windows文件夹下加入OpenCV动态链接库的问题

          这一步是各种介绍OpenCV的配置的相关博文中都没写出来的。根据这些博文配置出来的环境,在运行基于OpenCV的程序的时候,往往会得到这样类似的结果:

 

        这种问题最简单粗暴的方法,是把相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是C:\Windows。按照之前我的OpenCV的存放环境,这些dll存放在

        D:\Program Files\opencv\build\x86\vc10\bin目录下。


          到这个目录下,【Ctrl+A】全选,【Ctrl+C】拷贝,然后转到C:\Windows下面,【Ctrl+V】复制,简单粗暴地就完成了。

 

          恩,环境配置大功告成,我们来测试一下成果吧~

6.参考网页资料


【1】【OpenCV入门教程之一】OpenCV 2.4.8 +VS2010的开发环境配置:

http://blog.csdn.net/huang9012/article/details/21811129

【2】Visual Studio2010配置Opencv2.4.9:

http://www.cnblogs.com/woshitianma/p/3853447.html

【3】Windows7+VS2010下OpenCV环境配置:

http://johnhany.net/2013/11/environment-for-opencv-with-vs2010/

【4】vs2010 问题 >LINK :fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏:

http://www.cnblogs.com/newpanderking/articles/3372969.html

【5】OpenCV学习-——OpenCV永久配置(win7 64位+VS2012+OpenCV 2.4.6)

http://blog.csdn.net/lysc_forever/article/details/24272595


  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值