您的位置:首页 > 运维架构

vs2010+opencv配置

2017-07-27 16:22 260 查看
最近开始做图像识别,希望通过博客做一些记录。

配置方法也是参考了很多前辈的文章,然后自己整理了一下。

参考如下:

OpenCV(一) 安装配置篇 opencv2.49以及vs2010及其以上版本

OpenCV入门教程之一 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

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

1.安装opencv-2.4.9.exe



2.配置环境变量path

%OpenCV%代表安装目录,vc10是vc的版本,可以查看目录支持什么版本(我的安装目录为D:\opencv249\opencv)

32位系统 & VC2010,库目录 %OpenCV%\build\x86\vc10\lib

64位系统 & VC2010,库目为:%OpenCV%\build\x64\vc10\lib

【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】

->“双击”系统变量中的PATH->在变量值里面添加相应的路径。如图:



在后面加入;%OpenCV%\build\x86\vc10\bin

(据浅墨文章中介绍说64位系统也只需添加这一个就行,我先试验一下)



3.配置VC项目

正常来说,每次都要重新配置,浅墨的文章中在属性管理器中进行配置只需配置一次即可。

1 打开Visual Studio -> 文件 -> 新建 -> Win32控制应用程序,输入名称test,然后选好路径,点击确定。



2 下一步。



3 勾选空项目,完成。



4 在解决方案资源管理器的【源文件】处右击->添加->新建项,准备在工程中新建一个cpp源文件,添加。





5 在属性管理器中进行一次配置,就相当于进行了通用的配置过程,以后新建的工程就不用再额外的进行重新配置了。

在菜单栏里面点<视图>–<属性管理器>,那么就会在visual studio中多出一个属性管理器工作区来。



6 在属性管理器工作区,点击 Debug|Win32 -> Microsoft.Cpp.Win32.user (右键属性,或者双击)即可打开属性页面。

打开属性页面后,首先在【通用属性】 ->【VC++目录】 ->【包含目录】中添加上

D:\opencv249\opencv\build\include

D:\opencv249\opencv\build\include\opencv

D:\opencv249\opencv\build\include\opencv2 这三个目录。



7 在属性管理器工作区中,点击【通用属性】 ->【VC++目录】 ->【库目录】中



添加上

D:\opencv249\opencv\build\x86\vc10\lib



64位系统也是选择x86文件夹,因为配置选择和系统并没有直接关系,而是看编译时选择的编译器。



8 在属性管理器工作区中,点击【通用属性】 ->【链接器】->【输入】->【附加的依赖项】

添加如下249版本的lib

opencv_ml249d.lib

opencv_calib3d249d.lib

opencv_contrib249d.lib

opencv_core249d.lib

opencv_features2d249d.lib

opencv_flann249d.lib

opencv_gpu249d.lib

opencv_highgui249d.lib

opencv_imgproc249d.lib

opencv_legacy249d.lib

opencv_objdetect249d.lib

opencv_ts249d.lib

opencv_video249d.lib

opencv_nonfree249d.lib

opencv_ocl249d.lib

opencv_photo249d.lib

opencv_stitching249d.lib

opencv_superres249d.lib

opencv_videostab249d.lib

opencv_objdetect249.lib

opencv_ts249.lib

opencv_video249.lib

opencv_nonfree249.lib

opencv_ocl249.lib

opencv_photo249.lib

opencv_stitching249.lib

opencv_superres249.lib

opencv_videostab249.lib

opencv_calib3d249.lib

opencv_contrib249.lib

opencv_core249.lib

opencv_features2d249.lib

opencv_flann249.lib

opencv_gpu249.lib

opencv_highgui249.lib

opencv_imgproc249.lib

opencv_legacy249.lib

opencv_ml249.lib



重启电脑之后即可进行测试(环境变量设置可能没有生效,重启就可以了)

在main.cpp中输入

#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{
// 读入一张图片(游戏原画)
Mat img=imread("pic.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画",img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
}


放置一张名为pic.jpg的图片到工程目录(F:\Project\VS2010\test\test)中,然后点击“运行“按钮(选择Debug),如果配置成功,就不会报错,得到预想的运行结果。

遇到的问题

1 出现debug下可以运行但是release下不能运行的情况(因为字符串读取问题引起的诸如图片载入不了,报指针越界,内存错误等等),这算是OpenCV自2.4.1以来的一个bug。

解决方案:想在release模式下运行出程序结果,在工程的release模式下,将不带d的lib(全部是19个)添加到【项目】->【属性】(注意这样打开的是当前工程的属性页,我们只需在这里将release版(即不带d)的相关lib添加进去)->【配置属性】->【链接器】->【输入】->【附加的依赖项】下即可。

2 运行时出现LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

解决方案:查看计算机是否为64bit操作系统,如是,继续如下操作。

查找是否有两个cvtres.exe。

C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe

C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe

右键属性—详细信息, 查看两者版本号,删除/重命名较旧的版本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息