批量识别提取核酸检测二维码信息的实现


文章目录

文章目录


前言

如图,班级50余名学生提交的核酸检测二维码和其他图片混合,需要逐一验证二维码信息是否填写正确。用Python编写一个小程序来实现批量识别提取,导入数据到电子表格,可以直接看电子表格核对。能极大减轻工作量。


一、工具

Python 3.8.6

二、实现

1.思路

1.导入os模块,用os.walk()函数进行文件遍历,将类型为jpg,gif,png的文件名读取出来。 2.用pyzbar模块进行二维码识别,获取二维码信息。 3.导入urllib模块,对识别的内容进行解码。 4.导入xlwt模块将解码的内容写入excel文件中。 需要解决的问题:非二维码图片信息要过滤掉。 好了,将程序放到图片目录中运行,得到电子表格。打开电子表格,基本一眼就能看出哪位同学的二维码有问题。结果如下图:

2.代码

代码如下(示例):

# -*- coding: utf-8 -*-
from pyzbar import pyzbar
from PIL import Image
import os
import urllib.parse
import xlwt

def shibie(filename):
    global i
    if len(filename) != 0:
        img = Image.open(filename) # 含有条形码或二维码的图片
        results = pyzbar.decode(img) # 对图片进行解码
        for result in results:
            s=urllib.parse.unquote(result.data.decode(utf-8))
            ls=s.split(&)
            if ls[0]!="":
                i+=1
                worksheet.write(i,0,i)
                worksheet.write(i,1,ls[0])
                worksheet.write(i,2,ls[2])
                worksheet.write(i,3,ls[5])
                worksheet.write(i,4,ls[6])

if __name__ == __main__:

    print("开始识别……")
  
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet(Sheet1)
    worksheet.write(0,0,"序号")
    worksheet.write(0,1,"姓名")
    worksheet.write(0,2,"身份证号")
    worksheet.write(0,3,"联系电话")
    worksheet.write(0,4,"地址")
    i=0
  
    Epath=os.walk(os.getcwd())
    for path,dir,filelist in Epath:
        for filename in filelist:
            filename=os.path.join(path,filename)
            if filename[-3:] in ["jpg","png","gif"]:
                shibie(filename)
            
    workbook.save("MyExcel.xls")
  
    input("识别完成,按回车键结束")
    

总结

比较简单,但是确实能解放双眼。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291726.html

(0)
上一篇 2022年10月24日
下一篇 2022年10月24日

相关推荐

发表回复

登录后才能评论