【Python-利用动态二维码传输文件(四)】使用pyautogui库录屏(连续截图),然后利用OpenCV逐张读取截图,识别当中的二维码信息,并把信息重组成原文件

程序示意图

目录

一、使用pyautogui库,对电脑屏幕进行录屏

二、使用OpenCV库对100帧截图进行识别,并与原29帧二维码图片内含信息进行比对

三、把获取的100帧二维码信息去重,并保持原来顺序,重组成原来的文件

四、小结和完整代码


        上一篇文章实现了tkinter显示动态二维码。本篇为了模拟摄像头读取动态二维码信息,使用pyautogui库,对电脑屏幕进行录屏(连续截图),然后利用OpenCV按帧读取二维码,最后重组被拆分的文件。

一、使用pyautogui库,对电脑屏幕进行录屏

        pyautogui库可以实现电脑屏幕的截图,经过测试,自己电脑的性能大概可以实现0.1S的截图,由于上一篇动态二维码的帧率速度0.2S每帧,由香农定理可知,截图的采样频率应两倍于0.2S每帧(快于0.1S每帧),所以pyautogui录屏性能应该是满足要求的。具体理论可以参考以下文章:

采样定理为2倍,但是为何工程上要求2.56倍采样频率进行采样?icon-default.png?t=N7T8https://blog.csdn.net/seekyong/article/details/104383577        第一步,将原来拆分的29张二维码转换成GIF,方便后面测试录屏读取。

        第二步,一边打开图片播放器播放GIF图片,另一边同时运行save_qrs(_len)函数对电脑屏幕录像(连续截图),并把每帧截图存入固定文件夹。

        编写的save_qrs(_len)函数通过输入参数_len,实现循环截图_len次,并把截取的图片保存到read_cache文件夹下面,保存图片前需要先把原来的文件夹内文件清空。主要代码如下:

import pyautogui
import os

def save_qrs(_len):
    # 删除原来read_cache文件夹内的文件
    for _pic_file in os.listdir("read_cache"):
        os.remove("read_cache/" + _pic_file)
    # 是否存在read_cache这个文件夹
    if not os.path.exists("read_cache"):
        os.makedirs("read_cache")
    # 从0到_len截图_len次
    for i in range(0,_len):
        _screenshot = pyautogui.screenshot('read_cache/read_qrs_00'+str(i)+'.png')

if __name__ == '__main__':
    save_qrs(100)

        测试时,使函数输入_len为100,循环截图100次,程序运行结果如下,截取了电脑屏幕100次,并将截取的100帧图片保存在read_cache文件夹下:

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的代码在哪里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值