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


    使用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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    模型版

    模型文件从此处: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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    参考:在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
    
    • 1
    • 2
    • 3

    验证

    import cv2
    
    ob = cv2.wechat_qrcode_WeChatQRCode()
    
    • 1
    • 2
    • 3

    无报错即可

  • 相关阅读:
    快速创建redis集群
    d3d12龙书阅读----绘制几何体(上)
    海外代理IP与VPN有何区别?哪个更好?
    WebSocket服务多节点部署问题及解决方案
    运维工程师面试题及答案(网络运维工程师面试题)
    Nginx限制每秒请求次数,限制每秒连接次数,下载速度限制
    【无标题】
    力扣第 305 场周赛复盘
    elementplus、vxe、surely 三种表格组件的封装
    【Arcpy】提取遥感影像像元值
  • 原文地址:https://blog.csdn.net/qq_41982466/article/details/126833390