日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用Python從圖像中提取表格

大約一年前,我被分配任務(wù)從文件中提取和結(jié)構(gòu)化數(shù)據(jù),主要是包含在表格中的數(shù)據(jù)。我之前對(duì)計(jì)算機(jī)視覺(jué)沒(méi)有了解,并且很難找到一個(gè)合適的“即插即用”的解決方案。當(dāng)時(shí)可選的方案要么是基于最新神經(jīng)網(wǎng)絡(luò)(NN)的解決方案,這些解決方案龐大而繁瑣,要么是基于OpenCV的較簡(jiǎn)單的解決方案,但不夠一致。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、東明網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、東明網(wǎng)絡(luò)營(yíng)銷、東明企業(yè)策劃、東明品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供東明建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

受現(xiàn)有OpenCV腳本的啟發(fā),我開(kāi)發(fā)了一種簡(jiǎn)單而一致的方法來(lái)提取表格,并將其制作成一個(gè)開(kāi)源的Python庫(kù):img2table。

鏈接:https://github.com/xavctn/img2table

我的庫(kù)有什么作用?

與深度學(xué)習(xí)解決方案相比,這個(gè)輕量級(jí)的包不需要訓(xùn)練和最小化參數(shù)化。它提供了以下功能:

  • 識(shí)別圖像和PDF文件中的表格,包括在表格單元級(jí)別的邊界框。
  • 通過(guò)支持OCR服務(wù)/工具(Tesseract、PaddleOCR、AWS Textract、Google Vision和Azure OCR目前支持)來(lái)提取表格內(nèi)容。
  • 處理復(fù)雜的表格結(jié)構(gòu),如合并單元格。
  • 實(shí)現(xiàn)糾正圖像的傾斜和旋轉(zhuǎn)的方法。
  • 提取的表格以一個(gè)簡(jiǎn)單的對(duì)象形式返回,包括一個(gè)Pandas DataFrame表示。
  • 將提取的表格導(dǎo)出為Excel文件的選項(xiàng),保留其原始結(jié)構(gòu)。

如何使用它?

您可以通過(guò)pip安裝該庫(kù),然后就可以使用了:

pip install img2table

在文檔中識(shí)別表格只需調(diào)用一個(gè)函數(shù):

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))]

上述示例中使用的圖像

如果我們想提取表格的內(nèi)容,則需要使用OCR工具,可以按如下方式實(shí)現(xiàn):

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中提取的表格示例

最后,在簡(jiǎn)單的情況下,可以通過(guò)設(shè)置`borderless_tables`參數(shù)來(lái)執(zhí)行“無(wú)邊框”表格的提取。這允許檢測(cè)那些單元格不需要完全被邊框包圍的表格。

“無(wú)邊框”表格提取示例

這就是全部!實(shí)際上,庫(kù)并沒(méi)有太多復(fù)雜的東西,因?yàn)槟繕?biāo)是盡可能簡(jiǎn)化,以避免其他可用解決方案可能帶來(lái)的復(fù)雜性。

有關(guān)更詳細(xì)的文檔和示例,請(qǐng)查看項(xiàng)目的GitHub頁(yè)面:https://github.com/xavctn/img2table

底層實(shí)現(xiàn)

所有圖像處理都使用OpenCV和opencv-python庫(kù)完成。然而,這仍然相當(dāng)基礎(chǔ)。

算法的骨架是Hough變換,它能夠識(shí)別圖像中的線條,使我們能夠檢測(cè)圖像的水平和垂直線條。

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

之后,對(duì)線條進(jìn)行一些處理以從線條中識(shí)別單元格,然后從單元格中識(shí)別表格。

實(shí)現(xiàn)算法的簡(jiǎn)化表示

大多數(shù)計(jì)算使用Polars進(jìn)行,以實(shí)現(xiàn)良好的性能和速度。


分享題目:使用Python從圖像中提取表格
URL鏈接:http://www.5511xx.com/article/cocchho.html