做计算机视觉的朋友,估计没有人没用过OpenCV,著名的开源计算机视觉算法库。OpenCV还在不断发展中,最新的3.4版本,已经可以支持cnn了,以后估计会有集成更多的功能。
不过,由于知识产权的原因,OpenCV将很多算法放到了opencv_contrib中,在github上,这两块代码就是分别放在不同的repository中的。

OpenCV官方提供了windows可安装的版本,已经有编译好的dll,不过不包括opencv_contrib。如果想应用这部分算法,则需要自己编译opencv,将opencv_contrib编译到opencv中。以下简单介绍以下opencv在windows下编译的过程。
所需材料:

  • opencv源代码
  • opencv_contrib源代码
  • cmake
  • vs2015
  • 一个通畅的网络(这点很重要~)

1.下载opencv源代码
源代码的地址是:https://github.com/opencv/opencv/,默认是master分支。其实都下载master分支,就可以。不过,为了清晰源代码版本,以后还能做到匹配,我选择了tags中的最新版本,3.4.1版本,地址是:
https://github.com/opencv/opencv/tree/3.4.1
代码可通过git下载,用git clone命令即可。也可以在网页上点击Clone or download这个绿色按钮,然后点击download zip就可以。

2.下载opencv_contrib源代码
opencv_contrib代码地址是:https://github.com/opencv/opencv_contrib
3.4.1版本代码地址是:https://github.com/opencv/opencv_contrib/tree/3.4.1
相信大家也都发现规律了,参考下载opencv源代码方法即可。
下载后,解压代码到本地目录。

上图就是我解压的目录,其中有opencv和opencv_contrib的解压目录,还有一个build目录,用来放置cmake生成的vs工程。
3.安装cmake
CMake是一个跨平台的编译工具,能够输出各种各样的makefile或者project文件。

下载地址:https://cmake.org/files/v3.11/cmake-3.11.3-win64-x64.msi
下载之后直接运行,默认安装即可。
4.用cmake生成vs工程
安装好cmake之后,运行cmake,先填写开头的两项

Where is the source code是opencv源码路径,即“源路径”
Where to build the binaries是要生成opencv的vs工程路径,即“目的路径”
点击Configure,弹出对话框,选择编译工程的平台。我选的是64位的VS2015

点击Finish,即开始配置。这需要一定的时间,期间要下载一些依赖项,此时通畅的网络就起了关键作用,如果下载不全,可通过查看日志文件CMakeDownloadLog.txt手动下载。在完成第一次配置后,出现如下画面。

有很多红色选项,说明有问题,解决方法就是再点击一次Configure,这次快多了,出现下面画面。

全变白了,说明没问题了,这是需要做两项改动。

第一项是勾选BUILD_opencv_world选项,这样,在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。

这第二项,自然是在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。
然后再按Configure进行配置,和前面一样,一次红,二次白,不在赘述了。第二次全白了,就可以按Generate按键,生成vs工程文件了。

5.用VS2015编译opencv源代码
生成工程完毕,在刚才说的“目的路径”下,可以看到OpenCV工程文件

用vs2015打开工程文件,选择Debug x64,点击生成->生成解决方案开始编译,这个过程比较漫长,需要耐心,结果如下。

没有错误,然后右击INSTALL,点击“仅用于项目->仅生成INSTALL”

即可编译生成dll相关文件,编译过程如下。

然后将编译选项调整为Release x64,再重复一下以上的过程。此时在“目的路径”的install目录下,生成了调用dll的全部内容。

6.调用生成的dll实现图像处理功能
为了验证生成文件的有效性,新建工程,将库目录和包含目录指定到install文件夹下x64/vc14/lib和include文件夹。处理图片文标准测试图片house

测试代码如下:

#include "opencv2/opencv.hpp"
#include"opencv2/xfeatures2d.hpp"#if _DEBUG
#pragma comment(lib,"opencv_world341d.lib")
#else
#pragma comment(lib,"opencv_world341.lib")
#endif // _DEBUGusing namespace cv;
using namespace std;int main(){Mat img = imread("E:/PASCAL/OpenCV/house.jpg", CV_LOAD_IMAGE_COLOR);Ptr<Feature2D> sift = xfeatures2d::SIFT::create();vector<KeyPoint> keypoints;Mat descriptors;sift->detectAndCompute(img, noArray(), keypoints, descriptors);drawKeypoints(img, keypoints, descriptors, Scalar(0, 255, 255));imshow("Result", descriptors);waitKey(0);return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

测试结果如下。

实现了contrib中sift特征点的提取。

转载自:https://blog.csdn.net/ezhchai/article/details/80557936

opencv3.4.3+ contrib: https://blog.csdn.net/echoamor/article/details/83022352

OpenCV3.4.1+opencv_contrib编译:windows10相关推荐

  1. 【caffe】windows下vs2013+opencv3.2.0+opencv_contrib(包含dnn)+cmake3.8编译与配置

    opencv目前已经支持caffe训练模型的读取,以及使用模型进行预测,这个功能是dnn模块实现的,而这个模块位于opencv_contrib中,此前编译的opencv3.2.0并没有将opencv_ ...

  2. windows7 下vs2015使用opencv3.30、opencv_contrib库

    一.环境与所需要的资源 1.安装vs2015. A.vs2015我这里用的是cn_visual_studio_professional_2015_64位这个版本,可以在MSDN上下载,也可以在我网盘下 ...

  3. OpenCV3的GPU模块编译

    [摘要] OpenCV3的GPU模块需要手动重新编译才可以使用.本文介绍了编译OpenCV3 + GPU模块的方法. [本文使用的操作系统.软件版本] OS:Windows10 OpenCV 3.0. ...

  4. 学习OpenCV(5) opencv3.4 with CUDA编译

    opencv3.4 with cuda编译中的一个疑难问题的分析与解决 opencv3.4 with cuda编译,环境如下: 1.cmake 3.10 2.cuda9.0 3.opencv3.4 4 ...

  5. Windows环境下使用CMake编译OpenCV3.0和OpenCV_contrib

    Debug版本库: opencv_aruco331d.lib opencv_bgsegm331d.lib opencv_bioinspired331d.lib opencv_calib3d331d.l ...

  6. VS2015+cmake3.8+opencv3.2+opencv-contrib3.2编译及配置步骤

    一.下载以下文件并解压和安装cmake.并在同目录下新建文件夹mybuild 文件1  opencv-3.2.0-vc14.exe 文件2  opencv_contrib-3.2.0.zip 文件3 ...

  7. Ubuntu下安装opencv3.4.6+opencv_contrib

    简介 在安装HyperLPR(C++)的过程中需要opencv+opencv_contrib. 1.1 安装包下载 注意 opencv与opencv-contrib的版本应该一致 opencv 下载  ...

  8. ros加载编译opencv-3.4.9,编译安装opencv-3.4.9

                                                            ros加载编译opencv-3.4.9 ros中配置opencv 1.加载自己的open ...

  9. 学习OpenCV3:Cmake+MinGW编译OpenCV

    1. 准备 1.1 下载OpenCV源码 OpenCV下载地址1:https://opencv.org/releases/ OpenCV下载地址2:https://github.com/opencv/ ...

最新文章

  1. QT5生成可执行文件总结
  2. linux内核锁机制学习
  3. .net Core 3 preview 3试用 WPF,winform桌面开发
  4. 微软Edge扩展工具箱旨在将Chrome扩展带至Edge
  5. quantum_如何从Firefox Quantum删除Pocket
  6. [翻译]Go与C#的比较,第二篇:垃圾回收
  7. jquery 实现 点击把数据移动右侧 点击再次移回到左侧
  8. 明明白白你的Linux服务器——网络篇(2)
  9. 凸优化第三章凸函数 3.6关于广义不等式的凸性
  10. 小程序按钮如何制作?
  11. QuickJS 数字字面量解析
  12. uClinux移植与分析(3)
  13. 中科大843信号与系统中国科学技术大学843信号与系统138,总分420+上岸经验帖
  14. 面向Python开发人员的综合置信区间全面理解
  15. 高企审计报告包括哪些内容?
  16. acer switch 10 linux,【AcerSwitch10评测】高颜值的2in1电脑 Acer Switch 10评测(全文)_Acer Switch 10_笔记本评测-中关村在线...
  17. hashcat破解wifi密码(kali)
  18. (转载)深度工作:充分使用每一份脑力
  19. 网络基础之动态路由协议(OSPF)
  20. Navigation组件的使用详解

热门文章

  1. 如何使用JavaScript或JQuery检测一个URL文件是否存在?
  2. 容器编排技术 -- Kubernetes kubectl 概述
  3. 容器编排技术 -- 使用kubectl实现应用滚动更新
  4. Docker安装ActiveMQ(docker-compose.yml)
  5. 《Spring技术内幕(第2版)》PDF 国内经典分析spring源代码
  6. OpenJDK-11的新特征
  7. C#开发笔记之10-如何用C#根据发票代码判断发票种类?
  8. UI自动化测试 appium简介
  9. centos root密码_如何在CentOS中恢复丢失的root密码
  10. 使用Turi Create训练核心ML模型以对犬种进行分类