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

也就在前不久,复旦大学一博士生写了130行Python代码,批量识别核酸截图的故事,被人民日报公众号广泛报道,夸赞其将所学之知识技术应用到实际生活当中,大大减少了人力的投入,提高了效率。当中用到了OCR的技术来识别图表当中的数据,同时对于不懂技术的童鞋来来说不懂如何去操作,因此今天小编制作了一个UI界面来自动化一键提取图片当中的数据。

安装模块

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

pip install easyocr

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

156f05a098038327f1cb809e6d4ebb8b.png

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

169f1ea0282e9f4b08395501e4a83ee8.gif

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

6786f420c10f7679eed07d6cfc5a9ef4.png

代码逻辑

当我们点击“选择图片”实现图片上传的功能,代码如下

# 选择本地图片上传
def uploadImages(self):
    global imgNamepath_list  # 这里为了方便别的地方引用图片路径,将其设置为全局变量
    # 弹出一个文件选择框,第一个返回值imgName记录选中的文件路径+文件名,第二个返回值imgType记录文件的类型
    # QFileDialog就是系统对话框的那个类第一个参数是上下文,第二个参数是弹框的名字,第三个参数是默认打开的路径,第四个参数是需要的格式
    imgNamepath_list, imgType = QFileDialog.getOpenFileNames(self.ui, "上传文件", r"C:\Users", "*.png;;*.jpg;;All Files(*)")
    # print("imgNamepath_list: ", imgNamepath_list)
    # 显示所选图片的路径
    self.ui.lineEdit.setText(",".join(imgNamepath_list))

我们会将图片的路径悉数打印出来在文本框内,而当我们点击“开始”按钮的时候便尝试将上传的图片中的数据提取出来,上传的图片如下所示

6a860776e4aa4642dcc8a3cf9c5bf2b7.png

我们需要提取出来的是姓名、出生年月、住址信息等等,代码如下

data = []
for imgNamepath in imgNamepath_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_()

最后我们来看一下最后的效果

60e953b25cd721c277e740b36903303c.gif

 
 

241956acacd325b6bec5dd77da8841d2.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码(读博请说明)

ebebbabe963dc1fad915bfa6d764bce0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值