大约一年前,我被分配任务从文件中提取和结构化数据,主要是包含在表格中的数据。我之前对计算机视觉没有了解,并且很难找到一个合适的“即插即用”的解决方案。当时可选的方案要么是基于最新神经网络(NN)的解决方案,这些解决方案庞大而繁琐,要么是基于OpenCV的较简单的解决方案,但不够一致。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站制作、东明网络推广、小程序开发、东明网络营销、东明企业策划、东明品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供东明建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
受现有OpenCV脚本的启发,我开发了一种简单而一致的方法来提取表格,并将其制作成一个开源的Python库:img2table。
链接:https://github.com/xavctn/img2table
与深度学习解决方案相比,这个轻量级的包不需要训练和最小化参数化。它提供了以下功能:
您可以通过pip安装该库,然后就可以使用了:
pip install img2table
在文档中识别表格只需调用一个函数:
from img2table.document import Image
# Instantiation of the image
img = Image(src="myimage.jpg")
# Table identification
img_tables = img.extract_tables()
# Result of table identification
img_tables
[ExtractedTable(title=None, bbox=(10, 8, 745, 314),shape=(6, 3)),
ExtractedTable(title=None, bbox=(936, 9, 1129, 111),shape=(2, 2))]
上述示例中使用的图像
如果我们想提取表格的内容,则需要使用OCR工具,可以按如下方式实现:
from img2table.document import PDF
from img2table.ocr import TesseractOCR
# Instantiation of the pdf
pdf = PDF(src="mypdf.pdf")
# Instantiation of the OCR, Tesseract, which requires prior installation
ocr = TesseractOCR(lang="eng")
# Table identification and extraction
pdf_tables = pdf.extract_tables(ocr=ocr)
# We can also create an excel file with the tables
pdf.to_xlsx('tables.xlsx',
ocr=ocr)
从PDF中提取的表格示例
最后,在简单的情况下,可以通过设置`borderless_tables`参数来执行“无边框”表格的提取。这允许检测那些单元格不需要完全被边框包围的表格。
“无边框”表格提取示例
这就是全部!实际上,库并没有太多复杂的东西,因为目标是尽可能简化,以避免其他可用解决方案可能带来的复杂性。
有关更详细的文档和示例,请查看项目的GitHub页面:https://github.com/xavctn/img2table
所有图像处理都使用OpenCV和opencv-python库完成。然而,这仍然相当基础。
算法的骨架是Hough变换,它能够识别图像中的线条,使我们能够检测图像的水平和垂直线条。
cv2.HoughLinesP(img, rho, theta, threshold, None, minLinLength, maxLineGap)
之后,对线条进行一些处理以从线条中识别单元格,然后从单元格中识别表格。
实现算法的简化表示
大多数计算使用Polars进行,以实现良好的性能和速度。
分享文章:使用Python从图像中提取表格
分享URL:http://www.csdahua.cn/qtweb/news47/275947.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网