Win7系统Visual Studio下的openCV环境配置

Win7系统Visual Studio下的openCV环境配置

【本文为Windows7操作系统,64位,Visual Studio 2012,OpenCV版本号为2.4.9】

opencv

http://opencv.org/下载opencv的源码

这里写图片描述

这里选择opencv 2.4.9,下载后解压到选定的目录下

这里写图片描述

此时目录下的文件夹为:

这里写图片描述

其中build是SDK,sources是源码库。

build中的文件夹分别为:doc:文档文件夹,include:C/C++头文件文件夹,java:java开发库文件夹,python:python开发库文件夹,×86和64,是C/C++的64和32位库文件夹,其中的vc10,11,12分别对应VC++2010,2012,2013

.\opencv\build\x86\vc11中有 bin,lib,staticlib三个文件夹,其中bin是公用动态链接库(dll), lib文件夹是动态库隐式调用所需的静态链接文件, staticlib文件夹是静态链接库。

下面添加环境变量。计算机 —> 属性 —> 高级系统设置 —> 环境变量1.

这里写图片描述

将SDK的bin文件夹作为变量值,加入系统变量Path

这里写图片描述

用户变量里新建一个名为opencv2.4.9的变量,把build作为变量名

这里写图片描述

PATH里增加SDK的bin

.\opencv\build\x86\vc12\bin

环境变量配置完成。下面对于visual studio 的项目配置属性:

新建一个项目,控制台应用程序,如下

这里写图片描述

打开属性管理器

这里写图片描述

在Debug|Win32上右击,添加新项目属性表,命名为opencv2.4.9,修改包含目录和库目录和可执行文件目录,分别修改为:

D:\OPENCV\opencv\build\include;D:\OPENCV\opencv\build\include\opencv;D:\OPENCV\opencv\build\include\opencv2
D:\OPENCV\opencv\build\x86\vc11\lib
D:\OPENCV\opencv\build\x86\vc11\bin

这里写图片描述

在链接器中添加附加依赖项:

这里写图片描述

添加的内容如下:

opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.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
opencv_nonfree249.lib
opencv_objdetect249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib

(d代表debug,release版本中需要去掉带d的lib)2.

接下来配置Release|Win32,基本同上,在附加依赖项中去掉文件名的d(d代表debug)。如下

这里写图片描述

然后运行一段测试程序,如下:

#include <opencv2/opencv.hpp> 
using namespace cv;      
int main()  
{  
    Mat img = imread("test.jpg",1);  
    Mat grey; 
    Mat sobel;   
    double mini, maxi; 
    Mat display; 
    cvtColor(img, grey, CV_BGR2GRAY);    
    Sobel(grey, sobel, CV_32F, 1, 0); 
    minMaxLoc(sobel, &mini, &maxi);
    sobel.convertTo(display, CV_8U,255.0/(maxi - mini), -mini * 255.0/(maxi - mini));    
    namedWindow("src",CV_WINDOW_AUTOSIZE); 
    imshow("src", img); 
    namedWindow("dst",CV_WINDOW_AUTOSIZE); 
    imshow("dst", display); 
    waitKey();     
    return 0;   
}  

出现的报错:
计算机中丢失:opencv_core249d.dll.
将.\build\x86\vc11\bin和. \build\x64\vc11\bin中的所有内容分别拷贝至C:\Windows\System32和C:\Windows\SysWOW64,即可解决。但是出现其他问题:

“Test.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
“Test.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。无法查找或打开PDB 文件。
“Test.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法查找或打开PDB 文件。

解决方法:

调试—>选项和设置—>调试—>常规—>启用源服务器支持
调试—>符号—>Microsoft符号服务器

问题解决。

然后运行出错,错误提示:应用程序无法正常启动,返回值为 -1073741701(0xc000007b)。
下载DirectX Repair,检测并修复动态链接库(*.dll)

这里写图片描述

再运行测试程序,查看结果

这里写图片描述

终于好了,哈哈哈~~~


  1. 【注:环境变量(environmentvariables)是操作系统设定的运行环境的参数,当操作系统运行程序时,如果没有给出程序的完整路径,在当前文件夹有找不到该程序时,系统会按照环境变量给出的路径查找程序。环境变量分为系统变量和用户变量,相当于global和local variable,系统变量所有用户公用,用户变量仅限当前用户使用】
  2. 【注:包含目录,库目录,附加依赖项。 包含目录是指在include头文件(.h)时查找的目录,库目录是寻找.lib文件的目录,.lib文件是C++头文件中的函数的实现的.cpp,.cc,.c文件打包而成,附加依赖项就是这些lib库,包含着函数的具体实现,如果库目录错误,会提示link error:找不到某lib,而附加依赖项错误,会提示link error:未定义的函数】
posted @ 2017-11-13 16:34  毛利小九郎  阅读(207)  评论(0编辑  收藏  举报