本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,或者直接手工輸入完成。但是這種方式效率較低,容易出錯。使用Python可以自動化完成這個任務,大大提高效率。
一、安裝tesseract OCR
在開發這個功能的時候,我們需要使用OCR技術。OCR(Optical Character Recognition,光學字符識別)是把圖片中的字符轉換成文本的一種技術。
我們使用的是tesseract OCR,一種開源的OCR引擎。下面給出安裝步驟。
!pip install pytesseract
!sudo apt install tesseract-ocr
二、Python圖像處理庫
在Python中使用tesseract OCR處理圖像需要用到Python圖像處理庫。Python中常用的圖像處理庫有:Pillow、OpenCV等。本文使用的是Pillow。
!pip install pillow
三、具體實現
我們先從下面這張圖片入手:
首先加載圖片:
from PIL import Image
img = Image.open('image1.png')
img.show()
圖片加載出來後會顯示在新的窗口中:
接下來使用tesseract OCR將圖片轉為文本。我們可以使用pytesseract模塊實現。我們先將圖片轉為灰度圖,然後再將其轉為文本。
import pytesseract
text = pytesseract.image_to_string(img.convert('L'))
print(str(text))
輸出結果如下:
| Name | Age | Location | Job | | James | 25 | New York | Engineer | | Lily | 28 | Beijing | Teacher | | Tom | 30 | Shanghai | Doctor | | Tony | 35 | Hong Kong | Lawyer |
現在我們已經將圖片轉為文本了。接下來我們需要將其轉為表格。我們可以將字符串分行、分列並將其輸出為表格。我們使用pandas庫實現。pandas是Python中處理數據的強大工具。我們可以使用pandas的DataFrame函數將字符串轉為表格。
import pandas as pd
lines = str(text).replace("\r","").split("\n")
df_list = []
for line in lines:
df_list.append([x.strip() for x in line.split("|") if len(x.strip()) > 0])
df = pd.DataFrame(df_list[1:],columns=df_list[0])
print(df)
輸出如下:
Name Age Location Job
0 James 25 New York Engineer
1 Lily 28 Beijing Teacher
2 Tom 30 Shanghai Doctor
3 Tony 35 Hong Kong Lawyer
四、總結
在本文中,我們介紹了如何使用Python將圖片轉為表格。從安裝tesseract OCR到使用Python圖像處理庫,再到具體實現。希望本文可以對大家在日常工作或學習中遇到的類似問題提供一些幫助。
原創文章,作者:IDPDZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375294.html