iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别
  • 144
分享到

opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别

opencv人工智能计算机视觉 2023-08-30 15:08:38 144人浏览 安东尼
摘要

1.二维码的生成 废话不多说,直接上代码 # 生成二维码import qrcode# 二维码包含的示例数据data = "B0018"# 生成的二维码图片名称filename = "qrcode.png"# 生成二维码img = qrcod

1.二维码的生成

废话不多说,直接上代码

# 生成二维码import qrcode# 二维码包含的示例数据data = "B0018"# 生成的二维码图片名称filename = "qrcode.png"# 生成二维码img = qrcode.make(data)# 保存成图片输出img.save(filename)img.show()

运行效果:

会在当前目前生成一张图片
在这里插入图片描述

对生成的二维码识别

OpenCV从4代之后推出了二维码识别接口.调用方法是这样的.代码如下:

import cv2img = cv2.imread('qrcode.png')qrcode = cv2.QRCodeDetector()result, points, code = qrcode.detectAndDecode(img)print(result)

运行结果:

B0018

返回值有三个,

  • 第一个result就是解码后的内容,例如我这个二维码的结果是"B0018",当然也可以是个纯数字.

  • 第二个points是二维码轮廓的四个角,从左上角顺时针转的.

  • 第三个code是二维码的原始排列,也就是每个点是0还是255的一个矩阵.白色是255,黑色是0.调用起来十分方便,而且如果不需要解码,只是想定位的话可以调用detect函数,返回结果就只有四个角点了.

如果是一个大图中的一个二维码识别呢?比如下面的这个图
在这里插入图片描述

如果继续使用上面的识别二维码是识别不出来的。

下面我们看下二维码的原理及定位原理

二维码的结构与基本原理

标准的二维码结构如下:

在这里插入图片描述
特别要关注的是图中三个黑色正方形区域,它们就是用来定位一个二维码的最重要的三个区域,我们二维码扫描与检测首先要做的就是要发现这三个区域,如果找到这个三个区域,我们就成功的发现一个二维码了,就可以对它定位与识别了。

二维码其它各个部分的说明如下:

在这里插入图片描述
三个角上的正方形区域从左到右,从上到下黑白比例为1:1:3:1:1。

在这里插入图片描述
不管角度如何变化,这个是最显著的特征,通过这个特征我们就可以实现二维码扫描检测与定位。

除了上面的qrcode 包可以识别二维码外,还有pyzbar 包 也可以进行二维码的识别。比对下pyzbar 比qrcode 包的效率 更高。下面的代码

import cv2import numpy as npimport timeimport pyzbar.pyzbar as pyzbar# 显示条码和二维码位置def display(im, decodedObjects):    # 遍历所有已解码的对象    for decodedObject in decodedObjects:        points = decodedObject.polyGon        # 如果点不形成四边形,请找到凸包        if len(points) > 4:            hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32))            hull = list(map(tuple, np.squeeze(hull)))        else:            hull = points;        # 凸包中的点数        n = len(hull)        # 绘制凸包        for j in range(0, n):            cv2.line(im, hull[j], hull[(j + 1) % n], (255, 0, 0), 3)# 创建一个 qrCodeDetector 对象qrDecoder = cv2.QRCodeDetector()# 检测和解码二维码t = time.time()inputImage = cv2.imread("66.jpg")decodedObjects = pyzbar.decode(inputImage)if len(decodedObjects):    zbarData = decodedObjects[0].dataelse:    zbarData = ''if zbarData:    cv2.putText(inputImage, "result : {}".fORMat(zbarData.decode()), (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1,                (0, 255, 0), 2, cv2.LINE_AA)else:    cv2.putText(inputImage, "ZBAR : QR Code NOT Detected", (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2,                cv2.LINE_AA)display(inputImage, decodedObjects)print("Time Taken for Detect and Decode : {:.3f} seconds".format(time.time() - t))cv2.imshow("Result", inputImage)cv2.waiTKEy(0)cv2.destroyAllwindows()

运行效果:

在这里插入图片描述

从结果中可以看出可以定位到二维码的位置并将 识别的结果显示在左上角。

来源地址:https://blog.csdn.net/hai411741962/article/details/132496222

--结束END--

本文标题: opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别

本文链接: https://www.lsjlt.com/news/383136.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别
    1.二维码的生成 废话不多说,直接上代码 # 生成二维码import qrcode# 二维码包含的示例数据data = "B0018"# 生成的二维码图片名称filename = "qrcode.png"# 生成二维码img = qrcod...
    99+
    2023-08-30
    opencv 人工智能 计算机视觉
  • Android基于OpenCV实现QR二维码检测
    目录QR二维码QR二维码格式QR二维码结构APIQRCodeDetector类结构检测QR二维码识别QR二维码检测并识别QR二维码操作结果源码QR二维码 QR码(英语:Quick...
    99+
    2024-04-02
  • C++基于OpenCV实现手势识别的源码
    先给大家上效果图: 源码在下面 使用 RGB 值分割手部区域,即手部的 GB 值将与背景不同 或者使用边缘检测 或者 背景减法。  我这里使用了背景减法模型。OpenC...
    99+
    2024-04-02
  • 基于Opencv图像识别实现答题卡识别示例详解
    目录1. 项目分析2.项目实验3.项目结果总结在观看唐宇迪老师图像处理的课程中,其中有一个答题卡识别的小项目,在此结合自己理解做一个简单的总结。 1. 项目分析 首先在拿到项目时候,...
    99+
    2024-04-02
  • 基于JS实现二维码名片生成的示例代码
    目录演示技术栈源码cssjs演示 技术栈 这里用到了一个二维码生成库qrcode.js下面是简单介绍: //初始化QRCode对象 var qrcode = new QRCode...
    99+
    2024-04-02
  • ASP中如何实现二维码生成与识别?
    随着二维码的广泛应用,二维码的生成和识别已经成为很多应用场景中必不可少的功能。在ASP中实现二维码的生成和识别也变得越来越重要。本文将介绍如何使用ASP实现二维码的生成和识别,并给出相应的代码示例。 一、二维码的生成 安装二维码生成工具...
    99+
    2023-09-24
    二维码 bash numpy
  • 基于Python实现在线二维码生成工具
    目录1.环境搭建2.二维码生成功能的封装3.网页应用的搭建在今天的教程中,费老师我将为大家展示如何通过纯Python编程的方式,开发出一个网页应用,从而帮助用户直接通过浏览器访问,即...
    99+
    2024-04-02
  • 基于JS怎么实现二维码名片生成
    这篇文章主要介绍“基于JS怎么实现二维码名片生成”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于JS怎么实现二维码名片生成”文章能帮助大家解决问题。演示技术栈这里用到了一个二维码生成库qrcode...
    99+
    2023-07-02
  • 基于SpringBoot生成二维码的几种实现方式
    目录一、基于Google开发工具包ZXing生成二维码二、基于开源的Hutool工具生成二维码本文将基于Spring Boot介绍两种生成二维码的实现方式,一种是基于Google开发...
    99+
    2024-04-02
  • 怎么用go语言编程实现二维码生成及识别
    本文小编为大家详细介绍“怎么用go语言编程实现二维码生成及识别”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用go语言编程实现二维码生成及识别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。安装 go-qrc...
    99+
    2023-06-30
  • Linux上Java实现二维码实时生成和识别的完整教程。
    Linux上Java实现二维码实时生成和识别的完整教程 二维码技术是一种比较流行的信息传递方式,它可以将大量的信息编码成一个小小的二维码,方便快捷地传递信息。本文将介绍如何在Linux上使用Java实现二维码的实时生成和识别。 准备工作 ...
    99+
    2023-07-29
    linux 实时 二维码
  • 如何使用Python在Windows系统上实现二维码生成和识别?
    二维码是一种广泛应用于生活和工作中的矩阵条形码,它能够存储大量信息,并且具有快速读取的优点。Python是一种流行的编程语言,拥有许多优秀的库和框架,可用于生成和识别二维码。本文将介绍如何使用Python在Windows系统上实现二维码的生...
    99+
    2023-10-01
    windows 自然语言处理 二维码
  • 如何利用ASP技术实现高效的二维码生成与识别?
    二维码技术是一种将信息编码成二维码图形的技术,能够快速、方便地将信息传递给用户。在现代社会中,二维码已经成为了一种不可或缺的信息传递方式。本文将介绍如何使用ASP技术实现高效的二维码生成与识别,帮助您更好地了解二维码技术。 一、二维码的生...
    99+
    2023-08-22
    二维码 大数据 编程算法
  • 如何在Go语言中实现高效的二维码生成与识别算法?
    随着移动互联网的发展,二维码已经成为了一种不可或缺的工具。在很多场合中,我们需要用到二维码,比如商家的营销活动、商品的防伪溯源等等。本文将介绍如何在Go语言中实现高效的二维码生成与识别算法。 一、二维码生成 安装相关库 生成二维码需要...
    99+
    2023-08-23
    并发 二维码 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作