日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

使用Python從圖像中提取表格

來源: 責編: 時間:2023-11-15 17:17:17 251觀看
導讀大約一年前,我被分配任務從文件中提取和結構化數據,主要是包含在表格中的數據。我之前對計算機視覺沒有了解,并且很難找到一個合適的“即插即用”的解決方案。當時可選的方案要么是基于最新神經網絡(NN)的解決方案,這些解決

大約一年前,我被分配任務從文件中提取和結構化數據,主要是包含在表格中的數據。我之前對計算機視覺沒有了解,并且很難找到一個合適的“即插即用”的解決方案。當時可選的方案要么是基于最新神經網絡(NN)的解決方案,這些解決方案龐大而繁瑣,要么是基于OpenCV的較簡單的解決方案,但不夠一致。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

受現有OpenCV腳本的啟發,我開發了一種簡單而一致的方法來提取表格,并將其制作成一個開源的Python庫:img2table。X1r28資訊網——每日最新資訊28at.com

鏈接:https://github.com/xavctn/img2tableX1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

我的庫有什么作用?

X1r28資訊網——每日最新資訊28at.com

與深度學習解決方案相比,這個輕量級的包不需要訓練和最小化參數化。它提供了以下功能:X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

  • 識別圖像和PDF文件中的表格,包括在表格單元級別的邊界框。
  • 通過支持OCR服務/工具(Tesseract、PaddleOCR、AWS Textract、Google Vision和Azure OCR目前支持)來提取表格內容。
  • 處理復雜的表格結構,如合并單元格。
  • 實現糾正圖像的傾斜和旋轉的方法。
  • 提取的表格以一個簡單的對象形式返回,包括一個Pandas DataFrame表示。
  • 將提取的表格導出為Excel文件的選項,保留其原始結構。

如何使用它?

X1r28資訊網——每日最新資訊28at.com

您可以通過pip安裝該庫,然后就可以使用了:X1r28資訊網——每日最新資訊28at.com

pip install img2table

在文檔中識別表格只需調用一個函數:X1r28資訊網——每日最新資訊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))]

X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

上述示例中使用的圖像X1r28資訊網——每日最新資訊28at.com

如果我們想提取表格的內容,則需要使用OCR工具,可以按如下方式實現:X1r28資訊網——每日最新資訊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)

X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

從PDF中提取的表格示例X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

最后,在簡單的情況下,可以通過設置`borderless_tables`參數來執行“無邊框”表格的提取。這允許檢測那些單元格不需要完全被邊框包圍的表格。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

“無邊框”表格提取示例X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

這就是全部!實際上,庫并沒有太多復雜的東西,因為目標是盡可能簡化,以避免其他可用解決方案可能帶來的復雜性。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

有關更詳細的文檔和示例,請查看項目的GitHub頁面:https://github.com/xavctn/img2tableX1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

底層實現

X1r28資訊網——每日最新資訊28at.com

所有圖像處理都使用OpenCV和opencv-python庫完成。然而,這仍然相當基礎。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

算法的骨架是Hough變換,它能夠識別圖像中的線條,使我們能夠檢測圖像的水平和垂直線條。X1r28資訊網——每日最新資訊28at.com

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

X1r28資訊網——每日最新資訊28at.com

之后,對線條進行一些處理以從線條中識別單元格,然后從單元格中識別表格。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

實現算法的簡化表示X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

大多數計算使用Polars進行,以實現良好的性能和速度。X1r28資訊網——每日最新資訊28at.com

X1r28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-25992-0.html使用Python從圖像中提取表格

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C語言結構體用法詳解

下一篇: 由“點”向“面”!簡析新一代WAF的理念與應用

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 长岭县| 吴桥县| 读书| 太仆寺旗| 高邮市| 塘沽区| 伊金霍洛旗| 梅河口市| 沭阳县| 枝江市| 大埔区| 太保市| 阿拉善盟| 屏东县| 铜陵市| 吉木萨尔县| 大石桥市| 乌鲁木齐县| 常熟市| 中阳县| 夏河县| 青冈县| 岫岩| 双流县| 满洲里市| 德令哈市| 开封市| 乡城县| 兰西县| 山西省| 新龙县| 邯郸县| 二连浩特市| 门头沟区| 塘沽区| 琼海市| 郑州市| 永吉县| 永善县| 郧西县| 温州市|