用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)

这篇具有很好参考价值的文章主要介绍了用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导  读

    本文主要介绍使用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)。

项目简介

用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码),OpenCV,Python,图像处理相关,python,opencv,barcode,二维码解码

    本文我们将创建一个程序来扫描图像中的二维码和条形码。对于这个程序,我们需要三个包,分别是OpenCV、NumPy和pyzbar。大多数 Python 程序员都熟悉 OpenCV 和 Numpy 库。OpenCV 是一个开源计算机视觉和机器学习库。它是一个有用的图像处理库。我们在项目中使用这个库来处理设备捕获的视频中的每一帧。我们在这里使用 Numpy,因为 pyzbar 可与 OpenCV / numpy ndarrays 配合使用。而 pyzbar 库用于从给定图像中读取条形码和 QR 码。它支持 EAN-13/UPC-A、UPC-E、EAN-8、Code 128、Code 39、Interleaved 2 of 5 和 QR 码。这是对我们的项目和库的简短介绍,下面将详细介绍实现步骤。

      

实现步骤

    【1】安装需要的库。主要有OpenCV, Numpy, PyZbar。

#安装OpenCVpip install opencv-python​​​​​​
#安装pyzbarpip install pyzbar​​​​​​​
#安装numpypip install numpy

    【2】导入所有需要的库。代码如下:​​​​​​​

import cv2import numpy as npfrom pyzbar.pyzbar import decode

    【3】从摄像头设备捕获视频。代码如下:​​​​​​​

cap = cv2.VideoCapture(0)while True:    ret, frame = cap.read()    cv2.imshow('image', frame)    code = cv2.waitKey(10)    if code == ord('q'):        break

    【4】创建解码器函数,用于解码给定图像中的条形码和QRCode。代码如下:​​​​​​​

def decoder(image):    gray_img = cv2.cvtColor(image,0)    barcode = decode(gray_img)
    for obj in barcode:        points = obj.polygon        (x,y,w,h) = obj.rect        pts = np.array(points, np.int32)        pts = pts.reshape((-1, 1, 2))        cv2.polylines(image, [pts], True, (0, 255, 0), 3)
        barcodeData = obj.data.decode("utf-8")        barcodeType = obj.type        string = "Data: " + str(barcodeData) + " | Type: " + str(barcodeType)                cv2.putText(frame, string, (x,y), cv2.FONT_HERSHEY_SIMPLEX,0.8,(0,0,255), 2)        print("Barcode: "+barcodeData +" | Type: "+barcodeType)

    该函数获取图像,然后从图像中识别 QR 码和条形码,并对其值进行解码。这里的条形码是由解码函数识别的条形码和QRcode对象的列表。每个对象包含矩形、多边形、数据、类型等属性。矩形和多边形属性给出了条形码和QR码的位置。

    完整代码和检测效果:​​​​​​​

import cv2import numpy as npfrom pyzbar.pyzbar import decode
def decoder(image):    gray_img = cv2.cvtColor(image,0)    barcode = decode(gray_img)
    for obj in barcode:        points = obj.polygon        (x,y,w,h) = obj.rect        pts = np.array(points, np.int32)        pts = pts.reshape((-1, 1, 2))        cv2.polylines(image, [pts], True, (0, 255, 0), 3)
        barcodeData = obj.data.decode("utf-8")        barcodeType = obj.type        string = "Data " + str(barcodeData) + " | Type " + str(barcodeType)                cv2.putText(frame, string, (x,y), cv2.FONT_HERSHEY_SIMPLEX,0.8,(255,0,0), 2)        print("Barcode: "+barcodeData +" | Type: "+barcodeType)
cap = cv2.VideoCapture(0)while True:    ret, frame = cap.read()    decoder(frame)    cv2.imshow('Image', frame)    code = cv2.waitKey(10)    if code == ord('q'):        break

用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码),OpenCV,Python,图像处理相关,python,opencv,barcode,二维码解码文章来源地址https://www.toymoban.com/news/detail-825997.html

到了这里,关于用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 推荐一个 C#写的 支持OCR的免费通用扫描仪软件

    NAPS2是一个开源免费软件,体积只有6M不到,支持运行在 Windows, Mac 和 Linux操作系统中,默认就带有简体中文界面,官方默认就提供绿色版,所以解压即可使用,直接可以从官方网站下载:https://www.naps2.com/。 NAPS2全名叫做Not Another PDF Scanner 2,中文名叫做【不是另一个PDF扫描仪

    2024年02月08日
    浏览(53)
  • 如何利用Trimble RealWorks三维激光扫描仪进行外业测量和内业处理?

      笔者所在资源与环境工程学院实验室采购有一台Trimble RealWorks三维激光扫描仪(仪器名:Trimble TX8),因项目需要,在学校实验场地进行实地测量训练,相应的Trimble RealWorks数据处理软件资料来自Trimble经销商的网上软件使用直播培训视频(可访问哔哩哔哩:Trimble_Geo)。

    2024年02月02日
    浏览(45)
  • 轨道交通车体自动化检修测量大尺寸测量仪器-CASAIM激光三维扫描仪

    现今我国轨道交通高速发展,重大装备技术的进步离不开先进的大尺寸测量手段支持,CASAIM大尺寸测量在测量环境、测量精度和测量效率上明显区别于常规尺寸测量,可以快速检测车体表面的尺寸变形等问题,实现高精度、高效率的自动化车体检测。 保证车体的几何精度是提

    2024年02月11日
    浏览(57)
  • 深度相机、实验箱、扫描仪、机器狗…… 奥比中光超强性能3D视觉应用亮相VALSE 2023

    6月10日-12日,VALSE 2023视觉与学习青年学者研讨会在江苏无锡举办,奥比中光作为金牌赞助商,携Femto Mega与Gemini 2系列3D相机以及3D视觉实验箱开发套件、手持3D扫描仪、四足机器狗等创新解决方案参展,为3D视觉开发者提供多样化的开发选择。 VALSE是计算机视觉、图像处理、模

    2024年02月09日
    浏览(83)
  • H5项目实现扫描二维码功能 -- html5-qrcode

    vue3中使用 html5-qrcode 实现扫描二维码功能。 实现原理:调取手机摄像头扫一扫功能实现 注:调取手机摄像头需要再 https协议 下才可以,有的项目启动配置 https:true 可以实现启动的项目协议为 https 且可以访问,有的还是需要证书才能访问 1、下载 html5-qrcode 2、使用

    2024年02月06日
    浏览(35)
  • 【小程序内嵌H5扫描一维码/二维码】

    一. 需求描述:小程序内嵌的H5工程里面扫描快递单上的一维码/二维码,并自动显示在页面上 效果图 二. 实现方式:小程序web-view支持JSSDK接口中包含微信扫一扫接口,小程序内嵌的H5页面可以直接调起扫码功能,参考文档如下:文档链接 三. 代码实现: 1. 先安装jssdk(我是用

    2024年02月09日
    浏览(41)
  • Windows工业三防平板全功能NFC近距离感应一维/二维扫描

    Windows系统工业三防平板电脑是一种在智慧工厂仓储物流、MES数采、车载设备、设备检测、自动化控制等领域广泛应用的先进设备。此外,它还在公共服务领域,如高速交通、物流运输、电力检测、公务执法、银行金融、船舶装备、户外勘测、建筑工程、汽车检测、单兵装备等

    2024年02月07日
    浏览(40)
  • opencv python 训练自己的分类器

    源码下载 1.样本准备 收集好你所需的正样本,和负样本,分别保存在不同文件夹     在pycharm新建项目,项目结构如下:has_mask文件夹放置正样本,no_mask文件夹放置负样本  安装opencv,把opencv包里的文件复制到项目mask文件夹下    2.样本制作 (1)图片重命名 方便对样本进行批

    2024年02月15日
    浏览(46)
  • (详细教程)opencv+python+pycharm 训练属于自己的分类器(以口罩识别为例)

    文章目录 目录 前言 一、分类器制作 1.样本准备 2.样本制作 (1)图片重命名 (2)修改图片像素  3.生成资源记录文件  4.生成vec文件   5.训练模型 二、检验分类器​ 总结 本文详细介绍怎么制作属于自己的分类器,本篇以口罩识别为例来讲解. 在pycharm建立的项目根目录中建立mask文

    2024年02月03日
    浏览(35)
  • 教你用Python搭建一个属于自己的AI聊天机器人

    近年来,人工智能(AI)的发展日新月异,而 聊天机器人 (Chatbot)则是AI领域的明星应用之一。 今天,我们将深入浅出地介绍如何使用ChatGPT API,构建属于自己的智能聊天机器人的基础。 注册OpenAI账户 要使用ChatGPT API,首先需要在OpenAI官网(https://www.openai.com)上注册一个账

    2024年02月06日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包