python 下 CMake 安装配置 OPENCV 4.1.1的方法
作者:搞计算机的数学生 发布时间:2022-04-04 07:45:21
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 代码根路径
在路径下创建一个build文件夹,用于存放构建的二进制文件
然后会弹出一个窗口,让你配置VS版本,并选择系统win32还是x64(默认win32,需要根据电脑系统进行修改,我改成x64)
点击configure 然后opencv就开始构建了
先不要退出,继续看下面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
5.然后中间区域就是构建的信息(简单看一下,我选择默认配置)
WITH区域 可以选择你需要的额外功能,是不是支持GUDA等
BUILD区域,可以配置构建方法
OpenCV-python 不支持GPU,所以可以取消相关操作
6.由于最新的OpenCV版本只包含稳定的算法和不收费的算法,像SIFT和SURF这些有专利的算法,需要另行安装
在刚才的CMake界面找到OPENCV_EXTRA_MODULES_PATH 修改如下图所示:
再次点击Configure, 可以看到xfeatures2d这些功能正在加载,偶尔会存在download失败,只能省略两个字(网上也有一些其他手动方法,鉴于后边失败的较多,建议还是,)
手动下载(其他找起来太费劲了) ippicv_2019_win_intel64_20180723_general.zip
安装,参见博客opencv 解决ippicv下载问题,离线:ippicv_2019_lnx_intel64_general_20180723.tgz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZRJQVin-1569740558974)
或者找我要
7.点击Generate
8.到D:/WORK/OpenCVconf/opencv-4.1.1/build目录下,打开OpenCV.sln文件,官方文档建议releaseALL BUILD生成, 然后生成一下INSTALL生成
安装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的方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/u011543072/article/details/101694206


猜你喜欢
- 在写ASP网页时常用的检测代码:服务器现在时间:<% =now %>服务器CPU型号:<%=Request.ServerV
- 程序是从上到下顺序执行的,同时可以通过一些控制语句来改变执行的路线,受控制语句影响下,程序最终的执行路线就是控制流。js 里面的控制语句有
- 看代码吧~import torchimport numpy as npfrom torchvision.transforms import
- 弹出层提示信息,这是移动前端开发中最常见的需求,你可能会想到一些流行的弹框插件,比如 经典的artDialog 炫酷的Sweetalert等
- 设计原理从结构上来说,一个简单的图形界面,需要由界面组件、组件的事件 * (响应各类事件的逻辑)和具体的事件处理逻辑组成。界面实现的主要工作
- 之前在学Django时,发现它的模型层非常好用,把对数据库的操作映射成对类、对象的操作,避免了我们直接写在Web项目中SQL语句,当时想,如
- 本文实例为大家分享了python环境路径设置方法,以及命令行运行python脚本,供大家参考,具体内容如下找Python安装目录,设置环境路
- 一、下载镜像docker Hub官网URL:https://hub.docker.com/_/mysql/下载最新版本:docker pul
- 散点图散点图是指在 回归分析中,数据点在直角坐标系平面上的 分布图,散点图表示因变量随 自变量而 变
- GUI编程之 Pack、Place、Grid的区别本文讲述如何使用 tkinter 的布局管理 (被称作 layout managers 或
- 本文细致的为大家分享了Bootstrap轮播插件简单实例,供大家参考,具体内容如下使用Bootstrap的轮播插件可以向站点添加滑块,内容可
- 应该来说,学会了如何插入记录,如何显示记录,那么现在简单的完整的文章系统、新闻系统和留言系统不成问题。那接着下面的问题就是:随着信息内容的不
- 一、背景希望根据企业名称查询其经纬度,所在的省份、城市等信息。直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获
- 功能:创建两个滑动条来分别控制高斯核的size和σσ的大小,这个程序是在阈值分割的那个程序上改动的。阈值分割程序在这 注意:由于σ=0σ=0
- 今天发现一个很好用二维数组排序的php方法,usort,推荐给大家,以后二维数组里面,要按照一个字段的值排序用这个方法简单高效,例如下面的数
- [PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化,
- 自定义数据库字段扩展默认的models.CharField和models.TextField使之成为支持多语言的字段。可以轻松实现复用,无需
- python程序结构python“一切皆对象”,这是接触python听到最多的总结了。在python中最基层的单位应该就是对象了,对象需要靠
- 1、设置web.config文件。以下为引用的内容:<system.web> ...... <globalization
- 如何为XHTML做好准备,XHTML与HTML 4.01标准没有太多的不同。所以将你的代码升级至4.01是个不错的开始。HTML 4.01参