简介:

一直以来都是在ubuntu下使用opencv,最近因为有《图像处理与模式识别》这门课,需要使用vs2015+opencv提交课程作业,因为opencv官方编译好的exe没有contrib部分,就索性自己来cmake,还是鼓足了很大的勇气的,不过还是要勇敢踩坑。

一、编译前准备

1.cmake3.10.3

官网下载,或者【百度云下载】,提取码【hk1p】,自行百度自己安装

2.opencv源码

opencv-3.4.1:   https://github.com/opencv/opencv/releases

opencv_contrib-3.4.1: https://github.com/opencv/opencv_contrib/releases

二、cmake编译opencv

1.打开cmake,首先编译opencv-3.4.1, 选定 源码路径 和 编译输出路径 ,如下图:

这里我自己定义的源码路径是:D:/opencv3.4.1/sources/opencv-3.4.1 , 编译输出路径是: D:/opencv3.4.1/build

然后单击 configure ,  并选择如下图所示的配置,(我的电脑装的是vs2015 x64)

然后点击Finish,就可以开始进行编译了。

2. 编译opencv-3.4.1过程中遇到的问题,及解决办法

出现问题的原因的是,cmake过程中,需要从国外网站下载一下文件,导致下载不下来。

具体做法是,自己去取下载这三个文件,这里我给出容易下载失败的文件百度云链接,也可以去源码对应的github仓库中的3rdparty中下载自己没有下载成功的文件

opencv_ffmpeg_64.dll   【百度云下载】,提取码:【p4tu】

oepncv_ffmpeg.dll         【百度云下载】,提取码:【qvm6】

ffmpeg_version.cmake  【百度云下载】,提取码:【bm61】

上面文件分别在下面两个压缩文件中,可以去仓库下载,这里我也给出自己下载的链接

       ffmpeg相关:【百度云链接】,提取码:【fvy4】   ippicv相关:【百度云链接】,提取码:【2q72】

解决方法:可以参考这个博客【参考链接

但是我需要说的是,我在配置过程中在编译ippicv_2017u3_win_intel64_general_20170822.zip时,无论我怎么弄始终没有成功,后来我就索性把 WITH_IPP 给勾选掉了,这才编译通过,当然这是权宜之计,尽量还是都配置。

3. 编译opencv_contrib-3.4.1

在OPENCV_EXTRA_MODULES_PATH 下将opencv_contrib-3.4.1路径加入进去,如下图:

编译这个的过程中,竟然没有出错,通常可能也会因为网速的原因而失败的。具体可能失败的文件及解决办法也可以参考上述那个博客!

4.  Cmake最后一步

最后点击  “Generate”  ,然后出现 Configuring done, 这时候我们就编译好了opencv-3.4.1 + opencv_contrib-3.4.1的源码了

5. opencv在vs2015下的配置

这里就不展开说了,网上有很多教程,一步一步照着来就好了

6. 测试程序

 #include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
Mat srcImage = imread("1.jpg");//图片必须添加到工程目录下
//也就是和main.cpp文件放在一个文件夹下!!!
imshow("srcImage", srcImage);
waitKey();
}

能正确打开一张图片,说明opencv编译和配置成功

win7 x64 +vs2015 + cmake3.10.3编译opencv-3.4.1+opencv_contrib-3.4.1源码,并进行配置的更多相关文章

  1. win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

    win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...

  2. Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

    原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...

  3. (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析【待写】

    (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析[待写]

  4. 单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)

    单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件) webrtc的音频处理模块分为降噪ns,回音消除aec,回声 ...

  5. opencv探索之路(一):win10 X64+VS2015+opencv3.10安装教程

    我的电脑64位Win10系统,现在利用VS2015安装opencv3.10.安装之路颇为艰辛,从一开始的VS2015的安装,到opencv的安装,都充满挑战,历经千辛万苦终于把opencv开发环境搭建 ...

  6. Windows 10 +VS2019 编译OpenCV 4.1.0

    准备环境 安装cmake 官网 获取代码 github 下载拓展库opencv_contrib github 生成Sln cmake安装完后桌面会有一个快捷方式,可打开cmakeGUI,打开它. 第一 ...

  7. Win7下qt5.3.1+opencv2.4.9编译环境的搭建(好多 Opencv2.4.9源码分析的博客)

      到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装 ...

  8. opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块

    一.下载安装cmake 想要在Windows平台下生成OpenCV的解决方案,我们需要一个名为cmake的开源软件,可以在camke的官网:http://www.cmake.org/上下载到 或者点击 ...

  9. Linux 下编译Android-VLC开源播放器详解(附源码下载)

    这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时 ...

随机推荐

  1. Python 有序字典(OrderedDict)与 普通字典(dict)

    Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...

  2. 由百度 “PHP薪资” 引发的思考

    昨天晚上睡觉的时候百度了一下 “PHP薪资”,看到了各种各样的答案,从百度知道到知乎,再到各个论坛……答案也是从 2k-16k 不等(不过说实话,2k是吓到我了),其中一些答案说到了在中国从事某一行业 ...

  3. Android 网络交互之下载断点续传

    一.概述 1.概念 断点续传主要用于下载,本文也主要讲述下载时的断点续传的逻辑思路.顾名思义,断点续传就是下载从中断的地方继续下载,一般是因为暂停或者网络故障导致的下载中断,当恢复下载的时候可以从已经 ...

  4. Spring.Net实现跨数据库服务层事务管理

    在实际项目中用了Spring.Net框架之后,发现这框架在处理数据库事务上特别强大,声明式的数据库事务解放了一般开发人员对数据库事务操作的复杂处理.尤其是多数据库事务处理上,尤为显得更简便,几个简单的 ...

  5. 链表的创建(C语言实现)

    学习链表之前,我们要知道为什么要引入链表. C语言中的数组使用之前,我们必须要定义数组的大小.但是当我们不知道数据个数(或者很大)时,定义数组大小就成了一个困扰,而且对于这么多数据的处理也会很麻烦.所 ...

  6. linux中一些简便的命令之wc

    wc命令是统计文本中的字符数.单词数以及文本行数的,具体参数如下: -l 统计文本中的行数 -w 统计文本中的单词数 -c/m 统计文本中的字符数 -L 统计文本中最长行的字符数 当然使用时也可以不带 ...

  7. 关于appendChild和insertBefore appendTo()和append

    appendChild和insertBefore(原生js) appendTo()和append(jquery)

  8. BitMap位图与海量数据的理解与应用

    1. Bit Map算法简介 来自于<编程珠玑>.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空 ...

  9. js实现深拷贝的一些方法

    在ECMAScript变量中包含两种不同类型的值:基本类型值和引用类型值. 基本类型值:Undefined.Null.Boolean.Number.String 引用类型值:Object.Array. ...

  10. Nginx 的两种认证方式

    简介: 今天来研究一下 Nginx 的两种认证方式. 1.auth_basic 本机认证 2.ngx_http_auth_request_module 第三方认证 一.安装 Nginx shell & ...