资讯详情

用 Python 制作可视化 GUI 界面,一键提取图片当中的数据并保存至 Excel 当中

ef855a5d385335802a6bfa64d730405c.gif

作者 | 欣一

来源 |Python爱好者集中营

不久前,复旦大学一名博士生写了130行Python人民日报微信官方账号广泛报道了批量识别核酸截图的代码和故事,称赞其将所学知识技术应用到现实生活中,大大降低了人力投入,提高了效率。它被使用OCR技术识别图表中的数据,但对于不懂技术的童鞋不懂如何操作,所以今天小边做了一个UI一键提取图片中的数据。

首先,我们需要安装easyocr模块,通过pip命令

pipinstalleasyocr

而用来制作UI界面框架小编选择PyQt框架,因为它支持手动绘制控件,可以动态加载,我们在Pycharm当中添加上QtDesigner界面设置作为外部工具生成ui步骤如下

完成一系列配置后,我们打开它QtDesigner的初始界面,整体的过程就是将我们需要的控件拖到界面当中即可,

我们希望最终的功能是在上传图片后点击开始提取数据按钮。后端代码可以识别上传图片中的数据,并保存数据Excel将其下载到桌面上,并在程序运行结束后弹出提示框。UI界面设计如下

代码如下:

#上传本地图片 defuploadImages(self): globalimgNamepath_list#图片路径他地方引用图片路径,将其设置为全局变量 #弹出文件选择框,第一个返回值imgName记录所选文件路径 文件名,第二个返回值imgType记录文件类型 #QFileDialog第一个参数是上下文,第二个参数是弹框的名称,第三个参数是默认打开的路径,第四个参数是所需的格式 imgNamepath_list,imgType=QFileDialog.getOpenFileNames(self.ui,"上传文件",r"C:\Users","*.png;;*.jpg;;AllFiles(*)") #print("imgNamepath_list:",imgNamepath_list) #显示所选图片的路径 self.ui.lineEdit.setText(",".join(imgNamepath_list))

我们将在文本框中打印图片的所有路径,当我们点击开始按钮时,尝试提取上传图片中的数据。上传的图片如下:

我们需要提取姓名、出生日期、地址信息等,代码如下

data=[] forimgNamepathinimgNamepath_list: content=ocr.readtext(f'{imgNamepath}',detail=0) print(f"正在识别:{imgNamepath}") name=content[0][4:] gender=content[1][-1] country=content[2][-1] date_of_birth=content[-5] address=content[-4][4:] content[-3] id_number=content[-1] data.append([name,gender,country,date_of_birth,address,id_number])

最后,我们保存了数据Excel表格当中并且放置在桌面上,代码如下:

df=pd.DataFrame(data,columns=["姓名","性别","民族","出生","住址","身份证号"]) df.to_excel(r"C:\Users\PC120\Desktop\识别结果.xlsx",index=False)

当所有任务完成时,提示框将弹出,提示任务已完成,代码如下:

msg_box=QMessageBox(QMessageBox.Information,'完成',提取完成,QMessageBox.Yes) msg_box.exec_()

最后,让我们来看看最终的效果

太卷了!AI 81%的高考准确率

这个Python神器能让你摸半天鱼!

2D变身3D,看看英伟达AI新魔法!

如何用 Python 实现景区安全系统?

分享 点收藏 点点赞 点在看

标签: pc120光控开关继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台