opencv学习之第一章----opencv环境的搭建

来源:互联网 发布:飞升阵法升级数据 编辑:程序博客网 时间:2024/06/05 07:34

本文进行的opencv的重编译所使用的软件系列为opencv v2.4.10+vs 2010 win64+cmake v3.3 win32。

1.软件下载

vs2010的下载:链接:http://pan.baidu.com/s/1dE1DKzv  密码:tvf0

opencv V2.4.10下载:  链接:http://pan.baidu.com/s/1slHKD9z  密码:0oh4

cmakeV3.3下载:链接:http://pan.baidu.com/s/1c1un1c 密码:v4m6

2.软件的安装

vs2010解压后直接安装即可。

opencv解压为D:\opencv\opencv-2.4.10下,所解压文件中含有文件CMakeLists.txt。

cmake在安装时,需注意选中“Add CMake to the system PATH for all users”选项,并向桌面添加快捷方式。

3.编译opencv工程


找到opencv的源码位置(即刚才解压出来的opencv文件),随便找一个位置存放生成的二进制工程文件,如上图所示。


而后点击下方的configure进行工程的配置,并选择选项Visual Studio 10 2010 win64,但却出错了,提示“error in configuration process project files may be invalid”,并在最下方的输出窗口提示“check for working cxx compiler using:visual studiobroken”。这种情况的解决方案为:在目录下“C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe”和vs的安装目录下“D:\Microsoft visual studio\VC\bin\cvtres.exe”两个文件的版本号,删除旧的那个目录下的cvtres.exe文件。详见http://www.2cto.com/os/201704/628877.html

上述问题解决后,点击configure后等待完成第一轮配置,此时cmake正中央的颜色是红色的,而后再次点击configure进行第二轮配置,此时红色的部分就会变白。这时就可以进行generate操作了,等待完成后就可以得到相应的opencv工程了。


在生成工程的存放位置找到文件“OPENCV.sln”,使用vs打开。选择CMakeTargetsINSTALL,点击右键中“生成”,生成Debugdlllib。而后再在release模式下,同样右键INSTALL,生成release版的dll和lib。到此为止我们就完成了opencv的重编译,并可以实现代码的跟踪了(按F11)。


另外注意到一个问题就是,编译出来的额opencv工程很大,占用大概6个多G的空间,怎么在不影响代码跟踪功能的前提下减小空间的占用呢?先将文件夹D:\opencv\opencv_project\install拷贝到D:\opencv\目录下,并改名为vc10x64。然后分别在vs软件中的两个模式debug和release下使用“清理解决方案”(生成->清理解决方案),去除多余的文件,这时文件的大小成功缩小到的200多M。

4.修改opencv的环境变量

计算机->属性->高级系统设置->环境变量->用户变量,在Path中添加变量值“D:\opencv\vc10x64\x64\vc10\bin”。

5.测试opencv工程

在vs软件下,点击文件->新建->项目,建立一个空控制台项目。


选择release模式和平台x64!!!!!


在项目->属性对话框中,左侧“配置”选择“Debug”,然后“配置属性”->VC++目录,在右侧设置“包含目录”,新添加:

D:\opencv\vc10x64\include

 在项目->属性对话框中,左侧“配置”选择“release”,然后“配置属性”->VC++目录,在右侧设置“库目录”,新添加:

D:\opencv\vc10x64\x64\vc10\lib

右击项目-->属性-->配置属性-->常规,然后在右边的“项目默认值”中的“MFC的使用”选项中选择“在共享 DLL 中使用 MFC”。


下面将添加附加依赖项,依赖项的添加须与目录下D:\opencv\vc10x64\x64\vc10\lib的实际情况进行填写,内容与opencv的版本号有关。

在配置中选择Debug,在“链接器”->“输入”,配置“附加依赖项”,添加以下项:

opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib

在配置中选择Release,按照上面操作,添加如下依赖项:

opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib
opencv_nonfree2410.lib
opencv_objdetect2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_videostab2410.lib

6.编写测试代码

#include "afx.h"  
#include <opencv2/opencv.hpp>  

using namespace std;  
using namespace cv;  


int main(int argc, char* argv[])  
{  
Mat img = imread("C:/Users/Peak/Desktop/11.png");  
  
if(img.empty())  
{  
cout<<"error";  
return -1;  
}  
  
imshow("image", img);  
waitKey();  

return 0;  
}  

编译(F7)并运行(ctrl+F5)后即可,将图片显示出来。


参考:http://www.cnblogs.com/Genrobot/p/6055431.html

http://www.cnblogs.com/freedomshe/archive/2013/01/11/win7_vs2012_opencv_rebuild.html

原创粉丝点击