python在Windows下pip安装opencv与openc-contrib库(Linux同理)

2023-10-21 16:30

本文主要是介绍python在Windows下pip安装opencv与openc-contrib库(Linux同理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python在Windows下pip安装opencv与openc-contrib库(Linux同理)

一、pip直接安装步骤:

cmd或anaconda prompt或terminal命令行窗口中在激活需要的python版本的环境后输入以下代码,即可自动安装添加相应库包:

#若之前添加过,先卸载
pip uninstall opencv-python
pip uninstall opencv-contrib-python#安装
pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16

这里需要注意的是opencv的版本问题,如果不需要SIFT或SURF算子的使用,安装最新的就可以,如果需要的话,按上面的安装步骤只能安装到3.4.2.16版本的opencv,因为SIFT/SURF在 > 3.4.2 版本中不再开源,如果安装了 ≥ 3.4.2.17 的版本,且出现下面两种报错的情况下:

AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'或cv2.error: OpenCV(4.0.1) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\surf.cpp:1029: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SURF::create'

这时候可以按上面的安装步骤将版本降至3.4.2.16或以下即可。
注意SIFT/SURF检测算子是有专利保护的,在contrib库里是属于NONFREE的,如果不需要用到这两个算子,直接pip安装最新版本的opencv及对应的contrib库,一般是不会出错的,如果有可尝试上面的方法解决,或者通过编译的方法添加opencv。

二、编译安装步骤:

有关opencv从源码编译安装的过程可以参考下面链接的文章,里面主要是将支持cuda的opencv的,如果不需要cuda在cmake时取消勾选with_cuda即可
此链接内含opencv源码编译安装图文过程

三、python验证:

import cv2
print(cv2.__version__)
img =  cv2.imread("D:\\Images\\CVsamples\\data\\lena.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("source image", img)
cv2.waitKey()#Test the opencv-contrib lib
surf = cv2.xfeatures2d.SURF_create()
kp = surf.detect(gray, None)
img = cv2.drawKeypoints(gray, kp, img)cv2.imshow("detected image", img)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

这篇关于python在Windows下pip安装opencv与openc-contrib库(Linux同理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/255593

相关文章

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

Python实现开根号的五种方式

《Python实现开根号的五种方式》在日常数据处理、数学计算甚至算法题中,开根号是一个高频操作,但你知道吗?Python中实现开根号的方式远不止一种!本文总结了5种常用方法,感兴趣的小伙伴跟着小编一起... 目录一、为什么需要多种开根号方式?二、5种开根号方式详解方法1:数学库 math.sqrt() ——

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.