Windows环境下vs2015+opencv3.1+contrib库安装配置

最近几天在安装opencv,也看了网上的一些帖子,结合自己遇到的一些问题写了点内容。

准备:

1. opencv最新的版本是3.10,可以到官网下载http://opencv.org/。官网下载提取后会得到两个文件夹:build和sources。我们需要用到的是sources,用CMake重新编译sources里的内容,再添加contrib库。build里的内容是官网已经编译好的,有其他博客是讲利用build安装的,而这里我们并未用到。opencv也可从GitHub下载https://github.com/opencv/opencv,这是源码,相当于前述的sources文件夹。

2. CMake是用来编译源码的,官网下载https://cmake.org/。我使用的是。使用CMake除了要opencv编译源码,还有一个原因是:opencv3.1版本只能调试x64,不能调试x86。也就是说要在32位环境下调试,需要自己用CMake重新编译源码。

3. contrib库。官网上的opencv3.1包含的是稳定的核心库,而一些不稳定的放到了contrib中。GitHub下载https://github.com/opencv/opencv_contrib。解压后,我们用到的是modules文件夹。

4. 看见文件里有解压包时,不要轻易打开。

开始:

1. 文件夹路径,这个随自己设置就行。我将准备内容里的东西都放在了D:\BUILD(以下都用#\代替)里,新建一个myopencv文件夹,来装经CMake编译后的内容,会得到如下图的形式:

2. 在CMake编译opencv源码时,需要下载几个文件,但一般很难下载而导致编译失败,所以直接将其拷到文件夹中。链接:http://pan.baidu.com/s/1c18V9Ck 密码:bt7z。将downloads里三个文件夹中的文件拷贝到#\opencv\sources\3rdparty\ffmpeg下,会得到如下图的形式:

将ippicv_win文件夹拷贝到#\opencv\sources\3rdparty\ippicv下,同时修改downloader.cmake,以记事本形式打开,删掉末尾的“_icv_downloader()”

3. 在#\CMake\bin下打开cmake-gui.exe。在where is the source code输入 #\opencv\sources,在where to build the binaries输入 #\myopencv。会得到如下图的形式:

然后点击Configure,会出现编译器选择对话框

选择Visual Studio 14 2015,这个编译之后opencv3.1就能在x86(win32)环境下调试了。Visual Studio 14 2015 Win64对应的是x64。然后就是等待出现Configuring done,如下图。

然后Search找到OPENCV_EXTRA_MODULES_PATH,输入#\opencv_contrib_master\modules。再次点击Configure,等出现Configuring done后,点击Generate,之后会出现Generating done。到此为止编译的工作已经完成了。

4. 在#\myopencv下找到OpenCV.sln文件,打开它。初始化之后右键 解决方案‘OpenCV’,选择重新生成解决方案。这是在Debug、win32环境下生成的。此过程时间较长。然后找到CMakeTargets文件夹下的INSTALL文件,如下图:

右键->仅用于项目->仅生成INSTALL。然后在#\myopencv下就会有一个install文件夹。

5. 配置环境变量。

环境变量设置。变量名:OPENCV;值:#\myopencv\install。

用户变量设置。path下添加:#\myopencv\install\x86\vc14\bin。

6. 打开vs2015,新建一个工程。在属性管理器里找到Microsoft.Cpp.Win32.uesr,如下图:

右键->属性,会弹出对话框。找到通用属性->VC++目录,如下图:

在包含目录里添加:

#\myopencv\install\include

#\myopencv\install\include\opencv

#\myopencv\install\include\opencv2

在库目录里添加:

#\myopencv\install\x86\vc14\lib

找到链接器->输入->附加依赖项,如下图:

在附加依赖项中添加内容(就是#\myopencv\install\x86\vc14\lib文件夹里面的lib文件,对照着添加就行):

opencv_bgsegm310d.lib
opencv_bioinspired310d.lib
opencv_calib3d310d.lib
opencv_ccalib310d.lib
opencv_core310d.lib
opencv_datasets310d.lib
opencv_dnn310d.lib
opencv_dpm310d.lib
opencv_face310d.lib
opencv_features2d310d.lib
opencv_flann310d.lib
opencv_fuzzy310d.lib
opencv_highgui310d.lib
opencv_imgcodecs310d.lib
opencv_imgproc310d.lib
opencv_line_descriptor310d.lib
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_optflow310d.lib
opencv_phase_unwrapping310d.lib
opencv_photo310d.lib
opencv_plot310d.lib
opencv_reg310d.lib
opencv_rgbd310d.lib
opencv_saliency310d.lib
opencv_shape310d.lib
opencv_stereo310d.lib
opencv_stitching310d.lib
opencv_structured_light310d.lib
opencv_superres310d.lib
opencv_surface_matching310d.lib
opencv_text310d.lib
opencv_tracking310d.lib
opencv_ts310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib

至此,已经完成了所有工作。

测试:

重启电脑,验证一下是否已经OK。下面给出两个代码:

1. 第一个是显示一幅图像。将图像放到所建的工程里

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>  

using namespace cv;

int main() {
    // 读入一张图片(游戏原画)
    Mat img = imread("灯.jpg");
    // 创建一个名为 "游戏原画"窗口
    namedWindow("游戏原画");
    // 在窗口中显示游戏原画
    imshow("游戏原画", img);
    // 等待6000 ms后窗口自动关闭
    waitKey(6000);
}

显示结果为:

2. SIFT算法

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
using namespace cv;
using namespace std;

int main()
{
    //Create SIFT class pointer
    Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
    //读入图片
    Mat img_1 = imread("4.jpg");
    Mat img_2 = imread("5.jpg");
    //Detect the keypoints
    vector<KeyPoint> keypoints_1, keypoints_2;
    f2d->detect(img_1, keypoints_1);
    f2d->detect(img_2, keypoints_2);
    //Calculate descriptors (feature vectors)
    Mat descriptors_1, descriptors_2;
    f2d->compute(img_1, keypoints_1, descriptors_1);
    f2d->compute(img_2, keypoints_2, descriptors_2);
    //Matching descriptor vector using BFMatcher
    BFMatcher matcher;
    vector<DMatch> matches;
    matcher.match(descriptors_1, descriptors_2, matches);
    //绘制匹配出的关键点
    Mat img_matches;
    drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);
    imshow("【match图】", img_matches);
    //等待任意按键按下
    waitKey(600000);
}

显示结果为:

时间: 2024-08-06 19:38:02

Windows环境下vs2015+opencv3.1+contrib库安装配置的相关文章

Windows环境下Eclipse(在线+离线) 安装 Maven 的 m2eclipse 插件

Eclipse是一款非常优秀的IDE.除了基本的语法标亮.代码补齐.XML编辑等基本功能外,最新版的Eclipse还能很好地支持重构,并且集成了JUnit.CVS.Mylyn等各种流行工具. 可惜Eclipse默认没有集成对Maven的支持.幸运的是,由Maven之父Jason Van Zyl创立的Sonatype公司建立了m2eclipse项目,这是Eclipse下的一款十分强大的Maven插件,可以访问http://m2eclipse.sonatype.org/ 了解更多该项目的信息. 一.

Windows 环境下 gcc 编译 C++ Boost 库

1. 首先编译 b2.exe 很简单,bootstrap.bat文件里写的明白. 2. b2的命令行参数很多,文档到官网找 若编译boost.python可能要修改project-config.jam using python : 3.7 # Version : C:\\app\\tools\\Python37\\python.exe # Python Path : C:\\app\\tools\\Python37\\include # include path : C:\\app\\tools

windows环境下sublime的nodejs插件详细安装图解

前面的话 ??搜索了好多文档后,才成功地安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nodejs官网提供了node的msi文件,但本人在win7系统下多次尝试,均无法安装成功,且会有your system has not been modified...的提示.最终本人使用了另一种方法成功安装了nodejs 1.下载node.exe 2.下载最新版本的npm zip格式压缩包 3.在硬盘某个位置,如D盘

Windows环境下Android Studio系列8—SDK版本配置

1. 问题的由来 在一次调试问题中,出现下面错误信息: 09-07 09:15:08.000    1342-1342/? W/System.err﹕ android.os.NetworkOnMainThreadException 09-07 09:15:08.000    1342-1342/? W/System.err﹕ at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133) 09-07

《高可用MySQL》1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容. Master-Slave这东西吧.在很多公司都是标配.开发中基本天天都用.遇到的问题自然也不少(如主从不同步,Master宕机).但操作权限很有限.有些东西,仅仅有自己看了.做了,才干真正知道原理是什么,也才干更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从

《高可用MySQL》读书笔记1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容.Master-Slave这东西吧,在许多公司都是标配,开发中基本天天都用,遇到的问题自然也不少(如主从不同步,Master宕机),但操作权限非常有限.有些东西,只有自己看了.做了,才能真正知道原理是什么,也才能更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从官

Windows 环境下 Docker 使用及配置

我们可以使用以下两种方式在Windows环境下使用docker: 1. 直接安装: Docker支持直接安装并运行在windows环境下,但对Windows的版本和xu虚拟化服务等有着一定的要求. 而hyper-v服务会对VM等虚拟机的正常服务造成影响,因此不建议此种方法(血泪教训). 2. 使用Docker Toolbox: 除了可以避免方法1出现的问题外,还可以支持集群环境的搭建. 方法1安装过程较为简单,但要注意Hyper-V的支持是否开启,过程中可能会重启下面.下文主要对方法2做一些说明

windows环境下搭建网站

windows环境下搭建网站 IIS服务的安装 1.打开"控制面板" - "程序" - "启动或关闭Windows功能 IIS配置 1.WIN + X - "计算机管理" 2.新建网站 完成以上设置之后,尝试在自己的电脑上浏览(假设我以上端口号设置为81,即在浏览器输入localhost:81 或者127.0.0.1:81或者输入自己当前网卡的IP地址+端口号81) 或者输入目前电脑的IP地址(局域网地址) cmd - ipconfig

Windows环境中编译opencv3.0同时加入OPENCV_contrib库及解决遇到相关问题

因为opencv3.0默认安装中没有加入SIFT.SURF等点特征检测,一百度下一跳,原来这玩意还弄了个其他的库,还只能在GitHub上才能弄到,这两天弄opencv3的contrib库,遇到了一些问题,为了让大家更好.更快用上contrib库,根据谷歌百度的几个问题,现分享给大家完整流程,也欢迎大家与我讨论其他opencv方面的问题. 一.下载安装准备 github  desktop 下载      windows 7or Later : https://desktop.github.com