win7+opencv+V2015环境搭建

来源:互联网 发布:mysql注入 新手 编辑:程序博客网 时间:2024/06/07 12:51

win7+opencv+V2015环境搭建

使用官方的opencv环境(3.3.0,win版本)挺长一段时间之后发现了问题,一是直接安装官方exe的opencv其实是opencv官网编译好的库,在使用时遇到了问题(运行出错,调试崩溃),然后我选择重装;二是下载源代码自己编译之后发现缺少一些库(3.0版本之后人脸识别的库就被放到了opencv_contrib仓库,而不是master中),我又重装了一遍。而且官方给的脚本也有问题,编译花了很多时间,写这篇自己和他人一个提醒。

搭建环境:win7+VS2015,opencv3.3.0

下载cmake

可以在cmake官网(https://cmake.org/download/)下载安装。

下载opencv

opencv模块简介

在github上opencv主要分为2个仓库(3.3.0为例):

  • opencv:包含了opencv的基础操作,功能较为稳定的模块。具体包括:

    • core module:opencv的基础构建模块,如Mat等;

    • imgproc module:图像处理模块

    • highgi module:opencv内置图形用户界面的模块

    • imgcodecs module:图像的输入输出

    • videoio module:视频的输入输出

    • calib3d module:摄像机校准和三维重建

    • feature2d module:opencv内置2D特征模块

    • video module:视频分析模块

    • objdetect module:对象检测模块

    • dnn module:深度学习网络模块

    • ml module:机器学习模块

    • photo module:计算机摄影模块

    • stitching module:图像拼接模块

    • cuda module:GPU加速模块

  • opencv_contrib:包含了opencv的其他一些模块(如人脸识别等),具体可以参考:https://github.com/opencv/opencv_contrib/tree/master/modules

请在https://github.com/opencv根据需要下载最新版的opencv(本文下载的是3.3.0)。opencv仓库中是opencv官方给出的稳定和较为基础的模块源代码,我会用到人脸识别,因此我还会下载opencv_contrib仓库下的源代码。如果有安装git,也可以用shell脚本的git命令下载:

#!/bin/bash -ecd OPENCV_SORCE_DIRmkdir opencvmkdir opencv_contribcd opencvgit clone https://github.com/opencv/opencv.gitcd ../opencv_contribgit git clone https://github.com/opencv/opencv_contrib.git

使用cmake编译

(1)打开cmake-gui.exe

(2)在cmake-gui中选择需要编译的opencv的源码目录(OPENCV_SORCE_DIR)和编译后存放目标的目录(OPENCV_TARGET_DIR),点击“Configure”。这里源码目录是指opencv仓库存放的源码目录(OPENCV_SORCE_DIR/opencv),该目录如下:

(3)之后需要选择cmake编译的VS版本,根据自己电脑的配置进行选择,这里选择“Visual Studio 14 2015 Win64”

(4)在第一次config完之后,会出现

(5)之后要根据自己的需求进行配置。记得将BUILD_opencv_world选上,默认情况似乎是不选的,如果不安装opencv_contrib 中的模块就可以直接点击“Configure”了。这里由于需要安装 opencv_contrib 中的模块,因此要将OPENCV_EXTRA_MODULES_PATH设置为opencv_contrib所在的目录下的modules目录(OPENCV_SORCE_DIR/opencv_contrib/modules),注意分隔符是/,之后再点击“Configure”

(6)两次生成config完之后,点击“Generate”,cmake-gui的下方出现“Generate done”,cmake的编译就结束了,cmake生成的是VS的工程,之后是用VS来编译opencv。

用VS编译工程

(1)在cmake编译的目标目录(OPENCV_TARGET_DIR),用VS打开OpenCV.sln工程文件:

(2)在VS中的Debug和Release条件下分别依次编译CMakeTargets下的“ALL_BUILD”和“INSTALL”:右键点击,选择“生成”:

(3)等待编译结束,需要花挺长时间的。

配置opencv环境

(1)在环境变量path中添加opencv可执行文件的目录(OPENCV_TARGET_DIR\install\x64\vc14\bin),这里的分隔符是\

(2)在VS中任意打开工程,在属性管理器中点击“Microsoft.Cpp.Win32.user”属性页,在“VC++目录”->“包含目录”下添加:

OPENCV_TARGET_DIR\install\includeOPENCV_TARGET_DIR\install\include\opencvOPENCV_TARGET_DIR\install\include\opencv2

(3)在“VC++目录”->“库目录”下添加:

OPENCV_TARGET_DIR\install\x64\vc14\lib

(4)在“链接器”->“输入”->“附加依赖项”中添加OPENCV_TARGET_DIR\install\x64\vc14\lib目录下相应库文件的文件名,注意Debug和Release配置添加时要分别添加,Debug下添加以d结尾的lib(*d.lib),Release下添加不带d的lib(*.lib),以下是本人编译添加的,Debug:

opencv_aruco330d.libopencv_bgsegm330d.libopencv_bioinspired330d.libopencv_calib3d330d.libopencv_ccalib330d.libopencv_core330d.libopencv_datasets330d.libopencv_dnn330d.libopencv_dpm330d.libopencv_face330d.libopencv_features2d330d.libopencv_flann330d.libopencv_fuzzy330d.libopencv_highgui330d.libopencv_img_hash330d.libopencv_imgcodecs330d.libopencv_imgproc330d.libopencv_line_descriptor330d.libopencv_ml330d.libopencv_objdetect330d.libopencv_optflow330d.libopencv_phase_unwrapping330d.libopencv_photo330d.libopencv_plot330d.libopencv_reg330d.libopencv_rgbd330d.libopencv_saliency330d.libopencv_shape330d.libopencv_stereo330d.libopencv_stitching330d.libopencv_structured_light330d.libopencv_superres330d.libopencv_surface_matching330d.libopencv_text330d.libopencv_tracking330d.libopencv_video330d.libopencv_videoio330d.libopencv_videostab330d.libopencv_world330d.libopencv_xfeatures2d330d.libopencv_ximgproc330d.libopencv_xobjdetect330d.libopencv_xphoto330d.lib

Release:

opencv_aruco330.libopencv_bgsegm330.libopencv_bioinspired330.libopencv_calib3d330.libopencv_ccalib330.libopencv_core330.libopencv_datasets330.libopencv_dnn330.libopencv_dpm330.libopencv_face330.libopencv_features2d330.libopencv_flann330.libopencv_fuzzy330.libopencv_highgui330.libopencv_img_hash330.libopencv_imgcodecs330.libopencv_imgproc330.libopencv_line_descriptor330.libopencv_ml330.libopencv_objdetect330.libopencv_optflow330.libopencv_phase_unwrapping330.libopencv_photo330.libopencv_plot330.libopencv_reg330.libopencv_rgbd330.libopencv_saliency330.libopencv_shape330.libopencv_stereo330.libopencv_stitching330.libopencv_structured_light330.libopencv_superres330.libopencv_surface_matching330.libopencv_text330.libopencv_tracking330.libopencv_video330.libopencv_videoio330.libopencv_videostab330.libopencv_world330.libopencv_xfeatures2d330.libopencv_ximgproc330.libopencv_xobjdetect330.libopencv_xphoto330.lib

结束

配置完成之后可以用简单的显示图片来测试配置是否完成:

祝你好运!

原创粉丝点击