当前位置:首页 > 科技  > 软件

使用Python从图像中提取表格

来源: 责编: 时间:2023-11-15 17:17:17 369观看
导读大约一年前,我被分配任务从文件中提取和结构化数据,主要是包含在表格中的数据。我之前对计算机视觉没有了解,并且很难找到一个合适的“即插即用”的解决方案。当时可选的方案要么是基于最新神经网络(NN)的解决方案,这些解决

大约一年前,我被分配任务从文件中提取和结构化数据,主要是包含在表格中的数据。我之前对计算机视觉没有了解,并且很难找到一个合适的“即插即用”的解决方案。当时可选的方案要么是基于最新神经网络(NN)的解决方案,这些解决方案庞大而繁琐,要么是基于OpenCV的较简单的解决方案,但不够一致。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

受现有OpenCV脚本的启发,我开发了一种简单而一致的方法来提取表格,并将其制作成一个开源的Python库:img2table。kM128资讯网——每日最新资讯28at.com

链接:https://github.com/xavctn/img2tablekM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

我的库有什么作用?

kM128资讯网——每日最新资讯28at.com

与深度学习解决方案相比,这个轻量级的包不需要训练和最小化参数化。它提供了以下功能:kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

  • 识别图像和PDF文件中的表格,包括在表格单元级别的边界框。
  • 通过支持OCR服务/工具(Tesseract、PaddleOCR、AWS Textract、Google Vision和Azure OCR目前支持)来提取表格内容。
  • 处理复杂的表格结构,如合并单元格。
  • 实现纠正图像的倾斜和旋转的方法。
  • 提取的表格以一个简单的对象形式返回,包括一个Pandas DataFrame表示。
  • 将提取的表格导出为Excel文件的选项,保留其原始结构。

如何使用它?

kM128资讯网——每日最新资讯28at.com

您可以通过pip安装该库,然后就可以使用了:kM128资讯网——每日最新资讯28at.com

pip install img2table

在文档中识别表格只需调用一个函数:kM128资讯网——每日最新资讯28at.com

from img2table.document import Image# Instantiation of the imageimg = Image(src="myimage.jpg")# Table identificationimg_tables = img.extract_tables()# Result of table identificationimg_tables[ExtractedTable(title=None, bbox=(10, 8, 745, 314),shape=(6, 3)), ExtractedTable(title=None, bbox=(936, 9, 1129, 111),shape=(2, 2))]

kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

上述示例中使用的图像kM128资讯网——每日最新资讯28at.com

如果我们想提取表格的内容,则需要使用OCR工具,可以按如下方式实现:kM128资讯网——每日最新资讯28at.com

from img2table.document import PDFfrom img2table.ocr import TesseractOCR# Instantiation of the pdfpdf = PDF(src="mypdf.pdf")# Instantiation of the OCR, Tesseract, which requires prior installationocr = TesseractOCR(lang="eng")# Table identification and extractionpdf_tables = pdf.extract_tables(ocr=ocr)# We can also create an excel file with the tablespdf.to_xlsx('tables.xlsx',            ocr=ocr)

kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

从PDF中提取的表格示例kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

最后,在简单的情况下,可以通过设置`borderless_tables`参数来执行“无边框”表格的提取。这允许检测那些单元格不需要完全被边框包围的表格。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

“无边框”表格提取示例kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

这就是全部!实际上,库并没有太多复杂的东西,因为目标是尽可能简化,以避免其他可用解决方案可能带来的复杂性。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

有关更详细的文档和示例,请查看项目的GitHub页面:https://github.com/xavctn/img2tablekM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

底层实现

kM128资讯网——每日最新资讯28at.com

所有图像处理都使用OpenCV和opencv-python库完成。然而,这仍然相当基础。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

算法的骨架是Hough变换,它能够识别图像中的线条,使我们能够检测图像的水平和垂直线条。kM128资讯网——每日最新资讯28at.com

cv2.HoughLinesP(img, rho, theta, threshold, None, minLinLength, maxLineGap)

kM128资讯网——每日最新资讯28at.com

之后,对线条进行一些处理以从线条中识别单元格,然后从单元格中识别表格。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

实现算法的简化表示kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

大多数计算使用Polars进行,以实现良好的性能和速度。kM128资讯网——每日最新资讯28at.com

kM128资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-25992-0.html使用Python从图像中提取表格

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C语言结构体用法详解

下一篇: 由“点”向“面”!简析新一代WAF的理念与应用

标签:
  • 热门焦点
  • 小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从“最美JK”起到“最美女星&r
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
Top