资讯详情

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

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

如果您想获得本教程的部分源代码,您可以在官方账号后台回复【

安装模块

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

pipinstalleasyocr

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

acb301258de8f0a19daa74e657f4a558.png

完成一系列配置后,我们打开它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_()

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

往期推荐

Historical articles

【硬核干货】哪个数据分析比较强?Pandas还是选SQL

【硬核原创】盘点Python建议收集爬虫中常用的加密算法!

Python 全网办公自动化最强最详细PDF 文件操作手册

Python实现定期任务的八种方案,干货满满

分享,收集,喜欢,看安排?

标签: pc120光控开关继电器

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

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

 深圳锐单电子有限公司