Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)

这篇具有很好参考价值的文章主要介绍了Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 前言

        关于动态识别二维码信息,利用电脑摄像头动态扫描二维码,扫描视频中的二维码。


简易程序

import cv2  pip install opencv-python


def start():
    capture = cv2.VideoCapture(0)
    while True:

        fet, frame = capture.read()
        qrCodeDetector = cv2.QRCodeDetector()
        data, bbox, straight_qrcode = qrCodeDetector.detectAndDecode(frame)
        
        print(data) # data即读取到的数据

        cv2.namedWindow('read-QR', 0)
        cv2.imshow("read-QR", frame)
        k = cv2.waitKey(1)  # 保持画面的持续。
        if k == 27:  # 通过esc键退出摄像
            break

start()

加强版Python GUI(图像用户界面编程)

        由于我在项目中设计了一个PC端执行软件,所以用到了GUI编程,即图像用户界面编程,所以把关于这部分的GUI编程取了出来写在了下面。实际上用上面这个程序已经可以识别二维码了,下面这个程序是将程序由基于控制台来控制执行变成了图形用户界面来控制。将这个程序打包成软件可以用pip install auto-py-to-exe,这个库就是一个图像用户界面的程序,相比别的方式用起来比较友好,具体可以网上搜索学习。

import cv2
import tkinter
from tkinter import *
from PIL import Image, ImageTk
from tkinter import messagebox
import numpy as np

capture = cv2.VideoCapture(0)

root = tkinter.Tk()
root.title("read-QR")
root.geometry('900x600')
img_width = 800
img_height = 600 - 20
canvas = Canvas(root, bg='white', width=img_width, height=img_height)
canvas.place(x=0, y=0)


def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        root.destroy()
        capture.release()


def start():
    while True:

        fet, frame = capture.read()
        qrCodeDetector = cv2.QRCodeDetector()
        data, points, straight_qrcode = qrCodeDetector.detectAndDecode(frame)
        if data:
            cv2.drawContours(frame, [np.int32(points)], 0, (0, 255, 0), 2)  # 框出二维码位置

            print(data)

            tkinter.Label(root, text="姓名:" + data).place(x=900 - 100, y=0, width=100, height=20)

        tk_img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
        tk_img = Image.fromarray(tk_img)
        tk_img = tk_img.resize((img_width, img_height), Image.ANTIALIAS)
        tk_img = ImageTk.PhotoImage(image=tk_img)
        canvas.create_image(0, 0, anchor='nw', image=tk_img)
        root.update()
        root.after(1)


btnStart = tkinter.Button(root, text='开始', command=start)
btnStart.place(x=0, y=600 - 20, width=70, height=20)

root.protocol('WM_DELETE_WINDOW', on_closing)
root.mainloop()

关于如何制作二维码可看我同专栏的另一边篇文章,链接如下。

Python用qrcode和PIL制作二维码并添加汉字(用Python在图片上添加汉字)_"殇影的博客-CSDN博客python制作二维码,python批量制作二维码,python批量制作带汉字的二维码,在图片上添加汉字,用Python在图片上添加汉字https://blog.csdn.net/weixin_45694843/article/details/128046585?spm=1001.2014.3001.5502文章来源地址https://www.toymoban.com/news/detail-550945.html

到了这里,关于Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包