python 下 CMake 安装配置 OPENCV 4.1.1的方法


Posted in Python onSeptember 30, 2019

CMake 安装配置 OPENCV 4.1.1 解决各种问题

方法一

python 可以直接pip install opencv-contrib-python==3.4.x.x 安装,老版本的库包含SIFT等算法。但是,python不支持GPU的,对于JAVA等其他语言想调用opencv或者想使用更更高级的算法,那么还是必须得安装更高版本,下面介绍另外一种方法.

这个方法不提供SIFT和 SURF算法,因为这两个算法申请了专利,所有主要通过CMake设置OPENCV_ENABLE_NONFREE 选项才能使用这两个功能(有专利,所以不要商用)。

方法二 Building OpenCV from source

目前opencv 已经更新到4.1.1版本了,编译好或者可执行文件是不带有SIFT专利算法,这些算法已经从opencv基本库剥离出去,单独成一个source文件,需要通过CMAKE工具加载到环境中。

环境准备:

  • Visual Studio 2015最后一个升级版本,或者2017甚至更高。安装的时候必须勾选C编译器,不然会找不到
  • CMake配置过程中需要下载一些配置文件,速度极其慢,时常短线。如果下载不下来可以找我,后期我会分享到百度网盘上,免费提供。

1.下载: Visual Studio 2015(去MSDN下载2015最后一个升级版本,社区版就行,低级版本会存在编译失败)和 CMake 两个软件

2.下载 python 和 Numpy库,也可以下载Anaconda 免去库安装编译麻烦(我用的Anaconda)。(OpenCV 的所有数组结构都转化为了Numpy 数组格式, Numpy还是挺优秀的)

3.安装CMake, 解压 opencv source

4.CMake 设置

source code 只想你解压的OpenCV 代码根路径

  1. 在路径下创建一个build文件夹,用于存放构建的二进制文件
  2. 然后会弹出一个窗口,让你配置VS版本,并选择系统win32还是x64(默认win32,需要根据电脑系统进行修改,我改成x64)
  3. 点击configure 然后opencv就开始构建了
  4. 先不要退出,继续看下面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

python 下 CMake 安装配置 OPENCV 4.1.1的方法

5.然后中间区域就是构建的信息(简单看一下,我选择默认配置)

  • WITH区域 可以选择你需要的额外功能,是不是支持GUDA等
  • BUILD区域,可以配置构建方法
  • OpenCV-python 不支持GPU,所以可以取消相关操作

6.由于最新的OpenCV版本只包含稳定的算法和不收费的算法,像SIFT和SURF这些有专利的算法,需要另行安装

  1. 在刚才的CMake界面找到OPENCV_EXTRA_MODULES_PATH 修改如下图所示:
  2. 再次点击Configure, 可以看到xfeatures2d这些功能正在加载,偶尔会存在download失败,只能省略两个字(网上也有一些其他手动方法,鉴于后边失败的较多,建议还是,)
  3. 手动下载(其他找起来太费劲了) ippicv_2019_win_intel64_20180723_general.zip
  4. 安装,参见博客opencv 解决ippicv下载问题,离线:ippicv_2019_lnx_intel64_general_20180723.tgz
  5. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZRJQVin-1569740558974)

python 下 CMake 安装配置 OPENCV 4.1.1的方法

或者找我要

7.点击Generate

8.到D:/WORK/OpenCVconf/opencv-4.1.1/build目录下,打开OpenCV.sln文件,官方文档建议releaseALL BUILD生成, 然后生成一下INSTALL生成

python 下 CMake 安装配置 OPENCV 4.1.1的方法

安装opencv-contrib

这里面包含SIFT等收费算法,需要在CMake设置以下内容:

CMake软件设置OPENCV_EXTRA_MODULES_PATH指向opencv-contrib 的modules文件夹70)

OPENCV_ENABLE_NONFREE 勾选,然后点击configure,generate,然后再重新生成,就OK了。

若再有失败,就BUILD选区取消勾选相关项目

总结

  • 主要问题在于Visual studio版本太过低级
  • CMake下载一些配置文件失败,必须能够
  • Fwall不要额外勾选安装不需要的配置

以上所述是小编给大家介绍的python 下 CMake 安装配置 OPENCV 4.1.1的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
初步解析Python下的多进程编程
Apr 28 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
简单了解Python3里的一些新特性
Jul 13 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
python3调用windows dos命令的例子
Aug 14 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
Aug 18 Python
python实现ROA算子边缘检测算法
Apr 05 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
Python 数据可视化之Matplotlib详解
Nov 02 Python
Python3 翻转二叉树的实现
Sep 30 #Python
ubuntu上安装python的实例方法
Sep 30 #Python
python多进程并行代码实例
Sep 30 #Python
Python3实现二叉树的最大深度
Sep 30 #Python
给我一面国旗 python帮你实现
Sep 30 #Python
python的mysql数据库建立表与插入数据操作示例
Sep 30 #Python
感知器基础原理及python实现过程详解
Sep 30 #Python
You might like
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
react的hooks的用法详解
2020/10/12 Javascript
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
小学生感恩演讲稿
2014/04/25 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
入党积极分子考察意见
2015/06/02 职场文书
环保宣传语大全
2015/07/13 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技