使用python开发二维码识别功能、Docker镜像安装opencv-contrib-python、

15 篇文章 2 订阅
8 篇文章 0 订阅

使用python开发二维码识别功能、Docker镜像安装opencv-contrib-python、

背景

开发二维码识别功能,使用到开源三方库opencv-contrib-python。
在使用docker封装时,中途遇到几个报错,记录下来解决办法。

使用python开发二维码识别功能

使用前需要安装 opencv-contrib-python 包,注意安装的包不能低于4.5.2版本。
本处使用版本opencv-contrib-python==4.6.0.66

基础版

import cv2

def decode_wechat_cv(path):
    """
        使用 WeChatCv
    :param path:
    :return:
    """
    print('cv2.__version__:', cv2.__version__)
    detect_obj = cv2.wechat_qrcode_WeChatQRCode()
    img = cv2.imread(path)
    res, points = detect_obj.detectAndDecode(img)
    print('res:', res)
    print('points:', points)

模型版

模型文件从此处:https://github.com/WeChatCV/opencv_3rdparty/tree/wechat_qrcode 下载:
在这里插入图片描述
实测模型版识别效果更好,对于模糊图片,基础版无法识别,但模型版可以。

import cv2

def decode_wechat_cv_load_model(path):
    """
        使用 WeChatCv, 加载模型
    :param path:
    :return:
    """
    print('cv2.__version__:', cv2.__version__)
    root = "./model/"
    p1 = root + 'detect.prototxt'
    p2 = root + 'detect.caffemodel'
    p3 = root + 'sr.prototxt'
    p4 = root + 'sr.caffemodel'
    detect_obj = cv2.wechat_qrcode_WeChatQRCode(p1, p2, p3, p4)
    img = cv2.imread(path)
    res, points = detect_obj.detectAndDecode(img)
    print('res:', res)
    print('points:', points)

参考:在Python中使用微信扫码功能(OpenCV WeChatQRCode)

Docker镜像安装步骤

基础环境:centos8、python3.7

pip 更新

当直接使用 pip install opencv-contrib-python 时,出现如下报错:
在这里插入图片描述
解决:pip3 install --upgrade pip

异常:libGL.so.1

成功安装opencv-contrib-python后,使用 import cv2 时,报错如下:
在这里插入图片描述
解决:yum install mesa-libGL.x86_64

所有步骤

pip3 install --upgrade pip
pip3 install opencv-contrib-python==4.6.0.66 -i https://pypi.douban.com/simple
yum install mesa-libGL.x86_64

验证

import cv2

ob = cv2.wechat_qrcode_WeChatQRCode()

无报错即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值