win7+vs2010+opencv3.0.0+安装

来源:互联网 发布:大数据时代的思维变革 编辑:程序博客网 时间:2024/05/16 13:06
1、  opencv下载:
具体下载地址,http://opencv.org/,因为我的操作系统是win7,所以选择了基于windows的opencv最新版opencv3.0.0。
 
2、  opencv解压
opencv下载完成后是一个rar文件,直接解压到要放的文件夹里,我是放在了D:\Program Files里。总共解压后会有四个文件:build、sources、LICENSE.txt、README.md.txt。
 
3、  设置电脑的环境变量
计算机——>右键——>属性——>高级系统设置——>高级——>环境变量——>系统变量——>path,在path里添加D:\Program Files\opencv\build\x64\vc12\bin;D:\ProgramFiles\opencv\build\x86\vc12\bin。(因为我的电脑是64位的,所以就添加X64。)
 
4、  opencv配置
新建一个win32控制台应用程序项目,打开此项目的属性管理器,如项目名为test,则属性管理器下会有Debug|win32和Release|win32。
(1)双击Debug|win32的Microsoft.Cpp.Win32.user,会打开属性页,在VC++目录中的包含目录中添加:
D:\Program Files\opencv\build\include
D:\ProgramFiles\opencv\build\include\opencv
D:\ProgramFiles\opencv\build\include\opencv2。
在库目录中添加:
D:\Program Files\opencv\build\x64\vc12\lib
D:\Program Files\opencv\build\x86\vc12\lib
为了防止漏洞,我特地加上了32位的库目录。
在链接器中,单击输入,选择附加依赖项opencv_ts300d.lib、opencv_world300d.lib。
(2)双击Release|win32的Microsoft.Cpp.Win32.user,在链接器中,单击输入,选择附加依赖项opencv_ts300.lib、opencv_world300.lib。
 
5、实验
检测例程
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
         Mat img=imread("D:\\4.jpg");
         imshow("游戏原画",img);
         waitKey(6000);
         return0;
}
5、  在程序运行过程中出现了几个问题,现在列出来,供参考
(1)缺少MSVCP120.dll
在网上下载压缩包,解压后,放到C:\Windows\SysWOW64。因为我的电脑是64位的,就放在了这个位置。以下是参考的文件,每隔版本的电脑不一样,以下有详细的解释:http://zhidao.baidu.com/question/1637756556709611700.html。
(2)OpenCVError: Assertion failed (size.width>0 && size.height>0) incv::imshow, 
原来是文件的路径不对,参考的是http://answers.opencv.org/question/18135/opencv-error-assertion-failed-sizewidth0-sizeheight0-in-unknown-function/。
如 cv::Mat image = cv::imread("E:\\OpenCV\\OpenCVProjects\\myFirstOpenCVConsoleApp\\Debug\\img.jpg");
注意以上的两条斜杠。
(3)VS2010+opencv3.0编译出错,总是显示“应用程序无法正常启动(0x000007b)”,找不到dll文件,采用百度电脑专家DLL专修工具,下载路径http://zhuanjia.baidu.com/detail?pid=1154&src=1,安装完成后下载缺省的DLL文件,已经成功解决问题。

另外,在OpenCV配置环节那块,在计算机的环境变量里统一采用了x86和x64的bin文件,在VS2010的项目属性->vc++目录->库目录里就只添加了x86的lib文件。