码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用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

    无报错即可

  • 相关阅读:
    vant 组件库中的 图片上传组件(多张图片上传,删除图片传自定义参数)
    Postman 调用 Spring Boot 文件上传接口
    Java基于springboot+vue的图书馆网上图书借阅系统 nodejs前后端分离
    银行基于Dell EMC ECS对象存储架构的应用实践手册
    Unity接入OneStore内购
    [附源码]计算机毕业设计JAVAssm新冠疫苗预约接种信息管理
    软件企业认定条件
    RL 暂态电路与磁能
    数据探测之扫号攻击
    刚才面试官问我你会 Mysql 吗,我一聊一个小时!
  • 原文地址:https://blog.csdn.net/qq_41982466/article/details/126833390
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号