Opencv学习项目6——pyzbar

在之前我们学习了解码图片中的二维码,这次我们开启摄像头来解码视频中二维码

开启摄像头

# 打开摄像头
cap = cv2.VideoCapture(0)
cap.set(3, 640)  # 设置摄像头画面宽度
cap.set(4, 480)  # 设置摄像头画面高度

我使用的是笔记本上的摄像头来进行的,如果你们使用其他摄像头,可以根据需要调整

读取授权数据

首先我们要先创建一个授权文件,如mydata.txt,在里面写入我们授权的数据,如Armitage,这样在我们后面读取到二维码时,可以根据数据来进行不同的操作

# 从文件中读取授权数据
with open('mydata.txt') as f:
    mydataList = f.read().splitlines()
print("Authorized data loaded:", mydataList)

 使用 read().splitlines() 方法读取其中的数据,以列表形式存储在 mydataList 变量中

授权判断

# 判断二维码数据是否在授权列表中
        if mydata in mydataList:
            myout = 'Authorized'
            mycolor = (0, 255, 0)  # 绿色表示授权
        else:
            myout = 'Un-Authorized'
            mycolor = (0, 0, 255)  # 红色表示未授权

检查 mydata 是否在 mydataList 中,确定是否为授权数据,并相应地设置显示文本和矩形框颜色。

代码实现

import cv2
from pyzbar.pyzbar import  decode

cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,320)

with open('mydata.txt') as f:
    mydataList = f.read().splitlines()
print("Authorized data loaded:", mydataList)

while True:
    # 读取摄像头图像
    success, img = cap.read()
    # 解码图像中的二维码
    for barcode in decode(img):
        mydata = barcode.data.decode()
        print("Decoded data:",mydata)
        # 判断是否为授权数据
        if mydata in mydataList:
            myout = 'Authorized'
            mycolor = (0,255,0)
        else:
            myout = 'Un-Authorized'
            mycolor = (0, 0, 255)
        # 获取条形码的矩形边界
        rect = barcode.rect
        # 绘制矩形边界框
        cv2.rectangle(img, (rect.left, rect.top), (rect.left + rect.width, rect.top + rect.height),mycolor, 3)
        cv2.putText(img, mydata, (rect.left, rect.top +180), cv2.FONT_HERSHEY_COMPLEX, 0.8, mycolor, 2)
        cv2.putText(img, myout, (rect.left,rect.top  - 10), cv2.FONT_HERSHEY_COMPLEX,0.8, mycolor, 2)
    cv2.imshow('Result', img)
    # 检测按键事件,按下 q 键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# 释放资源
cap.release()
cv2.destroyAllWindows()

效果实现

 这样就完成了检测QR码是否在授权文件中,有兴趣的可以关注一下,谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CleanMyMac中文版2024官方正式版下载!你的电脑清洁专家!

CleanMyMac中文版,你的电脑清洁专家!✨🧵 你是否曾为电脑的卡顿和垃圾文件而烦恼?别担心,CleanMyMac中文版来帮你解决这些问题!这款神奇的软件不仅可以帮助你清理垃圾文件,还能优化系统性能&…

什么是营销翻译?为什么要使用它?

营销翻译是将营销活动和宣传品翻译成不同语言的过程。它可能涉及翻译您的: 网站营销文案,社交媒体帖子,演示文稿,新闻稿,产品包装,产品说明,海报,宣传册,以及 虽然企业…

商家转账到零钱申请驳回解决方案

商家转账到零钱是什么? 商家转账到零钱,简单说,就是微信支付提供的一个功能,让商家能够方便、快捷、安全地将钱转到用户的微信零钱里。这个功能特别适用于那些需要给用户发红包、退款或者进行其他形式转账的商家。它提供了两种转…

Origin做聚类分析并利用聚类插件绘制热力图

1.聚类分析 1.1 K均值聚类 step1、首先进行归一化,具体步骤如图1-1所示: 图1-1 操作后得到归一化值如图1-2所示: 图1-2 step2、执行K均值聚类分析,如图1-3所示,选中聚类列,接着点击“统计”—“多变量分析…

高级别智能驾驶神级利器:自研OTA系统

在港口无人水平运输场景中,经纬恒润提供了车、路、网、云、图全栈式自研解决方案,包含了自动驾驶车辆、路侧车路协同、全场高可靠定位、5G远程驾驶、运营调度管理、OTA软件升级系统、数字孪生、仿真系统、高精地图等专业模块,组成了一套完整的…

H3C综合实验

实验拓扑 实验要求 1、按照图示配置IP地址 2、sw1和sw2之间的直连链路配置链路聚合 3、 公司内部业务网段为VLAN10和VLAN20; VLAN 10是市场部,vlan20是技术部,要求对VLAN进行命名以便识别;PC1属于vlan10,PC2属于vlan20&#xf…

想远程控制手机,用哪个软件好?

很多人都想知道安卓系统或iOS系统要如何实现手机远程控制手机、电脑远程控制手机,分别需要用到什么软件,这篇文章一次说清楚。 注意,安卓系统需要是7.0及以上版本,iOS系统需要是11及以上版本。具体使用步骤请点击关注,…

10 种最佳编程字体

1.Commit Mono 这是我目前最喜欢的字体。这是我用来输入这篇文章的字体。作者 Eigil Nikolajsen 于 2023 年使用Fira Code和JetBrains Mono作为灵感开发了它。 Commit Mono 清晰易读,可配置性强。您可以根据粗细(我更喜欢最细的 300)、连字、…

开发一款直播APP完整指南

直播是一种强大的营销工具,可以让企业与观众进行真实的互动。 根据Grand View Research发布的预测,直播行业规模将从 2021 年的 700 亿美元增长到 2028 年的近 2240 亿美元,七年内增长三倍。 区块链技术和人工智能等技术进步将在未来几年提…

网页设计的意义何在?最后一个你绝对没想到!

在当今时代,网页已经成为我们日常生活中不可或缺的一部分。网页的支持对于搜索信息、购物、社交娱乐、在线学习和工作至关重要。网页设计作为网页的重要组成部分之一,在实现网页的各种功能和目的方面发挥着至关重要的作用。那么,网页设计的目…

lammps六边形建模方法

大家好,我是小马老师。 本文介绍lammps六边形结构建模方法。 lammps自带的形状有长方体、圆柱体、圆锥体和球体,其他特殊的情况大多需要用组合建模方法。 如下图截面为六边形的纳米线,很难用一条命令建模。 主要原理和之前的锐角刀具建模原理…

msvcr120.dll丢失我们要怎样修复?总结4种方法修复msvcr120.dll

msvcr120.dll丢失我们要怎样修复?相信经常使用电脑的人,总会遇到这样的一个问题,那就是突然弹窗说你的msvcr120.dll不见了,丢失了,然后你的各种程序也启动不了!这时候你就需要去修复msvcr120.dll这个文件&a…

Spring Boot项目的两种发布方式

5.1.方式1&#xff1a;通过jar包发布 步骤1&#xff1a;在pom中添加一个SpringBoot的构建的插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><!--自动检测项目中的 main 函数--><artifactId>spring-boot…

短视频最火的10个拍摄技巧,新手也能这样拍出大片效果

短视频越来越占据了人们的生活&#xff0c;不管是记录生活还是发个朋友圈是不是总感觉咱们自己拍出来的效果总是不如别人呢&#xff1f;更别说发短视频平台呢&#xff01;下面就分享10个拍摄技巧大家学着试试慢慢也能拍出大片效果。 不管你以后是否发展短视频平台&#xff0c;…

mprpc框架的配置文件加载

目录 1.回顾测试 2.mprpc框架的配置文件加载 2.1 mprpcconfig.h 2.2 完善mprpcapplication.h 2.3 完善mprpcapplication.cc 2.4 mprpcconfig.cc 2.5 test.conf 2.6 测试运行 ​3.扩展问题 1.回顾测试 我们先把之前的项目代码工程编译好&#xff0c;然后进入bin里面&am…

这七个自动化测试小知识,帮助你在自动化测试中走的更远

我们对自动化测试充满了希望&#xff0c;然而&#xff0c;自动化测试却经常带给我们沮丧和失望。虽然&#xff0c;自动化测试可以把我们从困难的环境中解放出来&#xff0c;在实施自动化测试解决问题的同时&#xff0c;又带来同样多的问题。在开展自动化测试的工作中&#xff0…

CPR曲面重建代码

废话不说&#xff0c;直接上代码&#xff1a; #include "vtkAutoInit.h" #include "vtkPolyData.h" #include "vtkProbeFilter.h" #include "vtkParametricFunctionSource.h" #include "vtkParametricSpline.h" #include &…

软件构造 | Design Patterns for Reuse and Maintainability

Design Patterns for Reuse and Maintainability &#xff08;面向可复用性和可维护性的设计模式&#xff09; Open-Closed Principle (OCP) ——对扩展的开放&#xff0c;对修改已有代码的封 Why reusable design patterns A design… …enables flexibility to change …

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口差异切换上线IPC管道ATSC任务Impacket套件UI插件

红队内网攻防渗透 1. 内网横向移动1.1 横向移动入口知识点1.1.1、当前被控机处于域内还是域外1.1.1.1 在域内1.1.1.2 不在域内1.1.1.2.1 第一种方法提权到system权限1.1.1.2.2 第二种方法切换用户上线1.1.1.2.3 kerbrute枚举用户1.1.2、当前凭据为明文密码还是HASH1.2 横向移动…

放弃 VS Code:新代码编辑器 Zed 的时代已经到来(附使用感受)

1.Zed 是什么&#xff1f; Zed 由 Nathan Sobo 和一个曾在 GitHub 开发 Atom 和 Tree-sitter 的团队开发。他们的目标是创建一个快速、简单且用户友好的代码编辑器&#xff0c;以提升开发人员的编码体验。以下是关于 Zed 历史的一些关键点&#xff1a; 起源&#xff1a;团队利…