win8 64位+opencv2.4.5+vs2010环境搭建

本文详细介绍了如何在Windows 8 64位系统上配置OpenCV 2.4.5和Visual Studio 2010的开发环境,包括下载OpenCV、设置环境变量、配置VS2010项目属性,以及解决调试和释放模式下的编译问题。通过这个过程,开发者可以成功搭建用于图像处理的开发环境。

这个搞了一下午才弄好,真是惭愧。其实opencv的环境搭建很简单。


1.首先下载目前最新的OpenCV-2.4.5.exe,进入下载页面后可以根据你的系统选择相应的文件现在。


2.下载完后,运行下载的exe文件。选择要解压的文件目录,如下图(比如我们将其解压在C盘根目录下):

   


3.解压完后,需要设置环境变量。右键我的电脑->属性-〉高级系统设置-〉环境变量,在系统变量中查找Path变量,编辑Path变量,在其值中添加C:\opencv\build\x86\vc10\bin;(有分号),此版本的opencv没有tbb无需在Path变量中添加有关tbb的值。

配置完环境变量后,最好重启一下电脑。


注意:在这里添加的值应为x86\vc10路径下的。经本人验证,虽然2.4.5版本的opencv在x86路径下相比以前的版本多了vc11路径,但是Path环境变量设置为x86\vc11的话,最后在程序执行时会提示MSVCP110D.dll丢失。还有虽然我的win8是64位的但是Path环境变量不能添加C:\opencv\build\x64\vc10\bin;或者是C:\opencv\build\x86\vc11\bin; ,本人认为应该是vs2010的问题,由于vs2010只有32位版本的,所以运行的opencv只能也是32位的,所以环境变量不能配置为64位的。


4.配置完环境变量之后,就该进入vs2010配置项目了。

  打开vs2010,新建一个控制台空项目,然后在该项目中添加一个.cpp文件(后面会附有测试代码,copy到该cpp文件中即可,配置完后再运行程序)。

  根据以下配置弄完以后,以后在其他项目中就不需要再次对项目进行配置了。

  然后,切换到"属性管理器",在项目的"Debug|Win32"下,双击“Microsoft.Cpp.Win32.user”选项,如下图所示:

  在左侧的属性栏中找到“VC++目录”,如下图所示:

上图的右侧有很多的目录项,我们要改的包括包含目录库目录(注意按照自己opencv的安装路径,填写相应的值):

其中在包含目录中添加:C:\opencv\build\include;

C:\opencv\build\include\opencv;

C:\opencv\build\include\opencv2;

库目录中添加:C:\opencv\build\x86\vc10\lib;

然后,在左侧栏目中找到链接器-->输入,如下图所示:

然后,在右侧的附加依赖项中添加以下项(以下项目可以根据项目不同进行删减):

opencv_core245d.lib
opencv_features2d245d.lib
opencv_flann245d.lib
opencv_highgui245d.lib
opencv_gpu245d.lib
opencv_haartraining_engined.lib
opencv_imgproc245d.lib
opencv_legacy245d.lib
opencv_ml245d.lib
opencv_nonfree245d.lib
opencv_objdetect245d.lib
opencv_photo245d.lib
opencv_stitching245d.lib
opencv_superres245d.lib
opencv_ts245d.lib
opencv_video245d.lib
opencv_videostab245d.lib


.cpp文件的测试代码(将某张图片放到你新建项目下,将下面代码中的“lena.jpg”,替换为你的图片的名称):

#include <opencv2\opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;
int main()
{
	Mat img = imread("lena.jpg");
	if(img.empty())
	{
		cout<<"error";
		return -1;
	}
	imshow("image",img);
	waitKey();

	return 0;
}

运行程序,可看到如下结果:

至此,opencv+vs2010就算是配置完毕了。

5.发现的问题:

   网上opencv的测试代码一般有两种,第一种是上面的.cpp中的代码,第二种是如下代码:


#include <highgui.h>	//OpenCV 的图像显示函数头文件

int main()
{
	IplImage *src; // 定义IplImage指针变量src 

	src = cvLoadImage("lena.jpg",-1); // 将src指向当前工程文件目录下的图像lena.jpg
	cvNamedWindow("lena",0);//定义一个窗口名为lena的显示窗口
	cvShowImage("lena",src);//在lena窗口中,显示src指针所指向的图像
	cvWaitKey(0);//无限等待,即图像总显示
	cvDestroyWindow("lena");//销毁窗口lena
	cvReleaseImage(&src);//释放IplImage指针src

	return 0;
}

其中,在Release模式下对第一种运行,就会出现错误,经过实践发现是在配置附加依赖项时出现的问题:

imread()函数在debug模式下只能使用debug链接库,例如上面配置的opencv_core245d.lib,名称最后有d的lib;

在Release模式下只能使用Release链接库,例如opencv_core245.lib,名称最后没有d的lib。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值