open cv_1在windows下配置

来源:互联网 发布:网络金融诈骗公司名单 编辑:程序博客网 时间:2024/06/05 04:24

经过了几个小时的努力,最终成功地在Visual Studio 2012中配置好了openCV,为了分享经验以及便于日后的查阅,记录了配置的过程和一些细节。
首先指出我配置的环境是: Windows_8, Visual_Studio_2012
openCV的版本是: openCV_2.47

下面开始详细地讲解整个配置的过程:

步骤1: 首先需要下载openCV,这是Sourceforge的链接 http://sourceforge.net/projects/opencvlibrary/

步骤2: 安装openCV到自定义目录下,安装的过程中系统会自动设置openCV的环境变量。

步骤3: 安装完毕后需要手工设置一下环境变量,把D:\CodeLibrary\opencv\build\x64\vc11\bin添加到系统变量-->Path中,其中D:\CodeLibrary\opencv是openCV的安装目录,这里根据自己的目录进行修改。另外,如果是32位的操作系统就把x64改成x86。

步骤4: 打开Visual Studio 2012创建一个Visual C++的一个新的空项目。

步骤5: 右键点击 [解决方案资源管理器] 中的解决方案结点,选择 [配置管理器]


步骤6: 在 [活动解决方案平台(P)] 中选择x64(因为我用的是64位的操作系统),假如没有x64可选则选择<新建 ...>,在 [键入或选择新平台(P)] 中选择x64然后点 [确定],然后关闭 [配置管理器]

步骤7:右键点击新建的项目,选择 [属性],打开属性窗口,然后在 [配置属性] 中选择 [VC++目录],编辑右边的 [包含目录],把D:\CodeLibrary\opencv\build\include,D:\CodeLibrary\opencv\build\include\opencv,D:\CodeLibrary\opencv\build\include\opencv2 这三个目录添加进去。这样用include添加openCV的头文件的时候才不会出错找不到文件。

步骤8:编辑右边的 [库目录],把openCV库函数的路径D:\CodeLibrary\opencv\build\x64\vc11\lib添加进去(注意到Visual Studio 2012需要使用vc11这个目录,而不再是vc10,而且对应是64位的操作系统所以选择x64这个目录)。让Visual Studio在编译程序的时候,能够搜索到这个目录以调用openCV的函数 。

步骤9:选择左边的 [链接器],再选择 [输入],修改右边的 [附加依赖项] 把D:\CodeLibrary\opencv\build\x64\vc11\lib目录下的所有以*.lib为扩展名的文件名添加进去,以添加lib文件(步骤8是添加库函数的搜索目录,这一步是添加具体的lib文件。)在这里以d结尾的文件对应debug模式,而不是以d结尾的文件对应release模式,为了方便起见,我把它们全部加进去了。


注意需要两个头文件:

stdafx.h

targetver.h

步骤10:现在已经完成了openCV的配置,运行一下一个简单的读图像的程序作为测试,可以看到图像能成功显示,按任意键可结束程序。

附上用于测试的代码:

#include<stdio.h>
#include"highgui.h"

int main(int argcchar** argv){
IplImage *img = cvLoadImage("E:\\2.jpg"); //cvLoadImage()的参数为图片的完整路径名
cvNamedWindow("Example1"CV_WINDOW_AUTOSIZE);
cvShowImage("Example1",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
return 0;
}


问题分类:

1.

warning LNK4067: 不明确的入口点;选定“mainCRTStartup"

可能是
项目里定义了重复的 _tmain函数
2.

运行出错 link : fatal error lnk1123: 转换到 coff 期间失败: 文件无效或损坏

尝试删除...\Microsoft Visual Studio 2010\VC\bin下面的那个cvtres.exe就好了。

3.1>opencvhello.obj : error LNK2019: 无法解析的外部符号 _cvDestroyWindow,该符号在函数 _main 中被引用
就是库没有连接成功。
4.
 

配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题

 3363人阅读 评论(0) 收藏 举报

配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题

使用vs2012配置opencv编译出现问题:

1>------ 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ------1>  stdafx.cpp1>  Win32ForOpenCV245.cpp1>f:\softs\opencv245\opencv\build\include\opencv2\flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.1>          c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdio.h(218) : 参见“fopen”的声明========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

解决办法它也写的很清楚,这里截图给大家看

也就是加入一个_CRT_SECURE_NO_WARNINGS的问题。

这个问题只有在Visual Studio 2012中才会有,2010中只是一个warning。

这个问题不管在OpenCV2.4.4还是OpenCV2.4.5都有,其它版本可能也有。

5.笔者在时隔一星期之后将x64改为x86因为笔者的vs2010没有x64平台快哭了再一次编译竟然神奇的好了。测试程序已经可以执行但还不能显示图像

6.LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
现在罗列一下这几种解决方案:方案1:    点击“项目”-->“属性” --> “清单工具”,    然后选择"输入和输出’ --> ‘嵌入清单’,将后面的‘是’改成‘否’就可以了方案2:在VS安装目录搜索cvtres.exe    发现有两个cvtres.exe文件,有的网友选择用最新的文件覆盖掉所有旧的cvtres.exe,    也有网友是删除旧cvtres.exe的文件。我是将旧 cvtres.exe 改名字了,以备恢复环境。    注意这两个文件都是一个版本号,但是生成时间只是相差1个小时,选择最新的那个。    也有搜索到好多cvtres.exe的 情况,这个就不清楚了,试试如何删除这些文件吧。    我的两个文件目录如下:    D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64    D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin方案3:就是安装新的VS2010 SP1,这种方法也可以解决部分这种问题。     比较麻烦的是这个SP1还比较大,乱七八糟的东西都得补丁上去。
这个是由于日志文件引起的,可以将项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。 或者将项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。

0 0