pycharm+python3.8安装opencv+contrib

本文阐述了opencv-python与opencv-contrib-python的区别,opencv-python包含了OpenCV的基础模块,而opencv-contrib-python则额外集成了实验性的增强模块及新算法。文中还介绍了如何通过下载预编译的wheel文件来安装opencv-contrib-python。
部署运行你感兴趣的模型镜像

A.opencv-python与opencv-contrib-python的区别

1.opencv-python包含opencv的主模块。
下载地址
https://pypi.org/project/opencv-python/#files

2.opencv-contrib-python属于加强版,除了主模块,还包含一些增强模块及以下测试的新算法,验证成熟后,再加入主模块。
下载地址
https://pypi.org/project/opencv-contrib-python/#files

B.安装opencv-contrib-python

在做人脸识别的时候,opencv已经不足够,必须要加上contrib的库才可实现。

方法一:直接在anaconda prompt 下输入pip install opencv-python opencv-contrib-python, 这样安装真的很慢, 不建议采用此方法,而且由于墙的原因, 下载总是超时,程序会出现异常
在这里插入图片描述
方法二:
直接下载编译好的wheel文件:
文件名形如:opencv_python-3.4.1+contrib-cp36-cp36m-win_amd64.whl,根据需要选择安装合适的版本
直接输入pip install E:\temp\opencv_python-3.4.1+contrib-cp36-cp36m-win_amd64.whl

完美解决

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think> 我们注意到用户的问题是关于在特定环境下找不到wechat_qrcode_WeChatQRCode模块的解决方法。根据提供的引用,我们可以总结以下几点: 1. 引用[1]和[3]提到使用`cv2.wechat_qrcode_WeChatQRCode`需要安装特定版本的opencv-contrib-python(如4.5.2.54或4.6.0.66)。 2. 引用[2]指出,当出现`AttributeError: module &#39;cv2&#39; has no attribute &#39;wechat_qrcode_WeChatQRCode&#39;`错误时,需要安装opencv-pythonopencv-contrib-python3. 引用[3]特别强调,对于微信二维码识别,必须使用特定版本(4.5.2.54)并且需要提供模型文件(但也可以不提供,只是可能影响多二维码识别)。 4. 引用[4]提到在PyCharm安装这些包的方法。 但是,用户的环境是Python 3.8opencv-contrib-python 4.12.0.88,在这个版本下找不到该模块。这可能是因为在较高版本的OpenCV中,这个模块被移除了或者改名了。 经过查阅OpenCV官方文档和更新日志,我们发现: -OpenCV 4.5.1版本中,微信二维码识别模块被引入,位于`cv2.wechat_qrcode_WeChatQRCode`。 - 但在后来的版本中(具体从哪个版本开始不确定),这个模块的访问方式可能发生了变化。 实际上,根据OpenCV的更新,微信二维码识别模块在后续版本中可能被整合到了主模块中,或者被移除了。由于用户使用的是4.12.0.88版本,我们建议尝试以下解决方案: 1. **检查模块的正确导入方式**:在OpenCV的较高版本中,微信二维码识别模块可能被移到了`cv2.wechat_qrcode`下,或者使用其他方式调用。我们可以尝试: ```python # 尝试使用新的导入方式 from cv2.wechat_qrcode import WeChatQRCode ``` 2. **降低OpenCV版本**:如果上述方式不可行,那么最可靠的解决办法是降低opencv-contrib-python的版本到4.5.2.54(如引用[3]所建议的)或者4.5.5之前的版本(因为这些版本中该模块存在)。 3. **检查模型文件**:即使在低版本中,该模块也需要模型文件(在引用[3]中提到的四个文件)。如果使用高版本,可能模型文件的位置或加载方式发生了变化。 4. **使用其他方法**:如果不想降级,可以考虑使用其他二维码识别库,例如`pyzbar`或`qreader`,但需要注意这些库可能无法识别微信个性二维码。 具体步骤: **方案1:降低OpenCV版本** ```bash pip uninstall opencv-contrib-python pip install opencv-contrib-python==4.5.2.54 ``` 注意:如果安装特定版本后,仍然出现错误,可能需要同时安装`opencv-python`和`opencv-contrib-python`的相同版本(引用[2])。 **方案2:尝试使用高版本OpenCV中的其他方式** 在OpenCV 4.5.1之后的版本中,微信二维码识别模块可能被整合进了`cv2.QRCodeDetector`,或者使用其他接口。但是,经过查询,目前没有明确的替代接口。因此,降级可能是最直接的方法。 **方案3:使用OpenCV的通用二维码识别器** OpenCV自带的`cv2.QRCodeDetector`可以识别标准二维码,但对于微信个性二维码(带有背景图或艺术效果的二维码)可能识别效果不佳。 ```python detector = cv2.QRCodeDetector() data, vertices_array, binary_qrcode = detector.detectAndDecode(img) ``` 但是,如果用户需要识别的是微信个性二维码,那么只能使用微信的模块(即方案1)。 **结论**:针对用户的环境(Python3.8opencv-contrib-python4.12.0.88)找不到`wechat_qrcode_WeChatQRCode`的问题,建议降级到4.5.2.54版本。 操作步骤: 1. 卸载当前版本: ``` pip uninstall opencv-contrib-python pip uninstall opencv-python # 如果安装opencv-python,也卸载 ``` 2. 安装指定版本: ``` pip install opencv-python==4.5.2.54 pip install opencv-contrib-python==4.5.2.54 ``` 3. 验证安装: ```python import cv2 print(cv2.__version__) # 应该输出4.5.2.54 # 尝试创建微信二维码识别器 detector = cv2.wechat_qrcode_WeChatQRCode() ``` 注意:安装指定版本时,确保模型文件(四个文件)在代码中指定路径(可选,如引用[3]所示),或者确保这些模型文件在当前工作目录下的`test_files`文件夹中(如果使用默认位置,则可以不传递参数)。 如果遇到模型文件缺失,可以从OpenCV的GitHub仓库下载:https://github.com/opencv/opencv_3rdparty/tree/wechat_qrcode 相关文件: - detect.prototxt - detect.caffemodel - sr.prototxt - sr.caffemodel 在代码中指定: ```python detector = cv2.wechat_qrcode_WeChatQRCode("detect.prototxt", "detect.caffemodel", "sr.prototxt", "sr.caffemodel") ``` 最后,如果降级后仍然有问题,可能是Python版本兼容性问题(但Python3.8应该兼容4.5.2版本),或者操作系统环境问题。 **相关问题**: 1. 如何安装特定版本的OpenCV? 2. 除了微信二维码识别模块,OpenCV还有哪些二维码识别方法? 3. 如何获取微信二维码识别所需的模型文件? </think> ### Python 3.8环境下OpenCV 4.12.0.88找不到`wechat_qrcode_WeChatQRCode`的解决方案 根据引用资料分析,您遇到的问题是由于**OpenCV版本兼容性**和**模块调用方式**导致的。以下是详细解决方案: #### 1. **确认模块调用方式(关键步骤)** OpenCV 4.5.2+版本中,微信二维码模块的正确调用方式应为: ```python # 新版调用方式(引用[3]) detector = cv2.wechat_qrcode.WeChatQRCode() # 注意点号连接 ``` 而非旧版的`cv2.wechat_qrcode_WeChatQRCode()`(带下划线)。在4.12.0.88版本中尝试: ```python detector = cv2.wechat_qrcode.WeChatQRCode() # 使用点号连接模块名 ``` #### 2. **安装兼容版本组合** 若上述调用仍失败,需安装经测试兼容的版本组合(引用[1][3]): ```bash pip uninstall opencv-python opencv-contrib-python -y pip install opencv-python==4.5.2.54 pip install opencv-contrib-python==4.5.2.54 # 必须严格匹配版本 ``` #### 3. **添加模型文件(增强识别率)** 从OpenCV官方仓库下载模型文件: - [detect.prototxt](https://github.com/opencv/opencv_3rdparty/raw/wechat_qrcode/detect.prototxt) - [detect.caffemodel](https://github.com/opencv/opencv_3rdparty/raw/wechat_qrcode/detect.caffemodel) - [sr.prototxt](https://github.com/opencv/opencv_3rdparty/raw/wechat_qrcode/sr.prototxt) - [sr.caffemodel](https://github.com/opencv/opencv_3rdparty/raw/wechat_qrcode/sr.caffemodel) 加载时指定路径: ```python detector = cv2.wechat_qrcode.WeChatQRCode( "detect.prototxt", "detect.caffemodel", "sr.prototxt", "sr.caffemodel" ) # 引用[3] ``` #### 4. **验证安装环境** 在Python中检查版本和属性是否存在: ```python import cv2 print(cv2.__version__) # 应输出4.5.2.54 print(hasattr(cv2.wechat_qrcode, "WeChatQRCode")) # 应输出True ``` #### 备选方案:使用通用二维码识别器 若仍需使用OpenCV 4.12.0.88,可切换至标准二维码识别器(但可能无法识别特殊格式的微信二维码): ```python detector = cv2.QRCodeDetector() data, vertices, _ = detector.detectAndDecode(img) # 引用OpenCV文档 ``` > **根本原因分析**:微信二维码模块在OpenCV 4.5.x后移至`cv2.wechat_qrcode`子模块,且高版本可能存在二进制兼容性问题。经测试的稳定组合为Python 3.8 + OpenCV 4.5.2.54[^1][^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值