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  decodecap = 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码是否在授权文件中,有兴趣的可以关注一下,谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腰背肌筋膜炎的症状及治疗

腰背肌筋膜炎的症状 一、疼痛特点: 主要表现为腰背部弥漫性钝痛,尤以两侧腰肌及髂嵴上方更为明显。疼痛特点为晨起痛,日间轻,傍晚复重。长时间不活动或活动过度均可诱发疼痛,病程长,且因劳累及气候变化而发…

如何运用Midjourney探究新中式美学?

新中式美学最近真是越来越火了,把传统中式元素和现代设计结合起来,不仅看着舒服,还特别有文化韵味。 1. 研究和准备 首先,得先弄清楚什么是新中式美学。说白了,就是把传统中式元素和现代设计结合起来。你可以看看相关…

#03动态规划

要点: 动态规划方法与贪心法、分治法的异同; 动态规划方法的基本要素与求解步骤; 动态规划方法的应用。 难点: 如何根据问题的最优子结构性质构造构造动态规划方法中的递归公式或动态规划方程。 动态规划的基本思想 动态规…

算法与数据结构面试宝典——迭代与递归详解与示例(C#,C++)

文章目录 一、迭代与递归简介迭代递归 二、迭代与递归的应用场景迭代递归 三、迭代与递归的优缺点迭代优缺点递归优缺点 四、迭代与递归的示例及面试策略示例1:斐波那契数列(迭代实现)示例2:快速排序(递归实现&#xf…

大学网页制作作品1

作品须知:1.该网页作品预计分为5个页面(其中1个登录页面,1个首页主页面,3个分页面),如需要可自行删改增加页面。(总共约800行html,1200行css,100行js) 2.此网页源代码只用于学习和模…

R语言——数据与运算

练习基本运算&#xff1a; v <- c(2,4,6,9)t <- c(1,4,7,9)print(v>t)print(v < t)print(v t)print(v!t)print(v>t)print(v<t) v <- c(3,1,TRUE,23i)t <- c(4,1,FALSE,23i)print(v&t)print(v|t)print(!v)v <- c(3,0,TRUE,22i)t <- c(1,3,T…

【启明智显产品分享】Model4 工业级HMI芯片详解(三):高安全、防抄板

Model4 工业级HMI芯片详解系列专题&#xff08;三&#xff09;【高安全、防抄板】 随着物联网和智能设备的快速发展&#xff0c;设备安全认证的需求日益迫切。硬件安全认证和保护在确保设备和身份安全中发挥着不可替代的作用&#xff0c;需要与软件安全相结合&#xff0c;共同构…

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…

STM32--IAP程序升级实验

1. STM32程序升级方法 1.1 ST-link / J-link下载 将编译生成的hex文件使用ST-Link/J-Link工具直接下载进 Flash 即可。Keil中点击下载也能一键下载。下载后的代码会存放在Flash的起始地址0x0800 0000处。 简单补充一句&#xff0c;bin文件和hex文件的区别&#xff1a; bin文…

ARM day1练习 求1~100内的和

题目要求:用ARM汇编语言实现1~100之间之和&#xff08;5050 0x13BA&#xff09; .text 声明以下内容是文本段的内容 .global _start .global声明_start标签是一个全局标签_start:mov r1,#0x0 r1 summov r2,#0x1 r2 ifun: 加法函数cmp r2,#100 r2中的值和100作比较add…

Matlab基础篇:数据输入输出

前言 数据输入和输出是 Matlab 数据分析和处理的核心部分。良好的数据输入输出能够提高工作效率&#xff0c;并确保数据处理的准确性。本文将详细介绍 Matlab 数据输入输出的各种方法&#xff0c;包括导入和导出数据、数据处理和数据可视化。 一、导入数据 Matlab 提供了多种方…

Go自定义数据的序列化流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【计算机毕业设计】167校园失物招领微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

导出 S 参数扫描结果供 INTERCONNECT 使用

导出 S 参数扫描结果供 INTERCONNECT 使用 正文正文 有时候,对于 FDTD 无法直接进行仿真的大型仿真链路,我们需要使用 FDTD 针对单个小的模块进行仿真,再将得到的 S 参数结果导入到 INTERCONNECT 中使用,最终完成整个链路的仿真。通常完成 S 参数扫描后其状态如下图所示:…

QT拖放事件之八:通过全局剪切板中的接口QClipboard::mimeData()来获取MIME类型数据

1、演示效果 首先向剪切板写入数据,然后点击paste按钮进行从全局剪切板中 获取 MIME数据。。。 2、核心代码 void Widget::on_pasteBtn_clicked() {const QClipboard* clipBoard = QGuiApplication::clipboard()

非强化学习的对齐方法

在文章《LLM对齐“3H原则”》和《深入理解RLHF技术》中&#xff0c;我们介绍了大语言模型与人类对齐的“3H原则”&#xff0c;以及基于人类反馈的强化学习方法&#xff08;RLHF&#xff09;&#xff0c;本文将继续介绍另外一种非强化学习的对齐方法&#xff1a;直接偏好优化&am…

kafka--发布-订阅消息系统

1. Kafka概述 1. kafka是什么 kafka是分布式的、高并发的、基于发布/订阅模式的消息队列软件系统。 kafka中的重要组件 Producer&#xff1a;消息生产者&#xff0c;发布消息到Kafka集群的终端或服务Consume&#xff1a;消费者&#xff0c;从Kafka集群中消费消息的终端或服…

安达发|生产制造业怎么做好一体化生产计划排产?

在生产制造业中&#xff0c;一体化生产计划排产是确保生产效率和产品质量的关键。要实现这一目标&#xff0c;企业需要采用高级排产软件&#xff08;APS&#xff09;来优化生产流程。以下是如何利用APS软件做好一体化生产计划排产的详细步骤和建议&#xff1a; 1. 需求分析与数…

1.2 DataX 数据同步工具详细教程

DataX 是阿里巴巴开源的一款高效的数据同步工具&#xff0c;旨在实现多种异构数据源之间的高效数据同步。以下是对 DataX 的详细介绍&#xff1a; 架构 DataX 的架构主要包括以下几个核心组件&#xff1a; DataX Core&#xff1a;负责任务调度、插件加载、日志管理等核心功能…

SSM爱心捐赠物资维护系统-计算机毕业设计源码09536

摘要 随着信息技术的快速发展&#xff0c;计算机应用已经进入成千上万的家庭。随着物资数量的增加&#xff0c;物资库存管理也存在许多问题。物资数据的处理量正在迅速增加&#xff0c;原来的手工管理模式不适合这种形式。使用计算机可以完成数据收集、处理和分析&#xff0c;减…