如何從圖像中提取文字?
我說的不是掃描文件,而是各種圖像,例如當你在課堂上拍攝黑板的高清照片時,它是漂亮的手寫;或者當您拍攝食譜書中的一頁並想要文字格式的食譜時。
有免費且開放的軟體嗎?
我嘗試了 tesseract,結果很糟糕。
答案1
tesseract-ocr
與其他所有人相比,這將是最偉大的。對於安裝,請執行以下命令
sudo apt-get install tesseract-ocr
用法是tesseract filename.jpg output.txt
,然後就會產生output.txt
檔案。
您可以考慮選擇適當的語言。在這種情況下,您將需要安裝tesseract-ocr-LANG
包,LANG
三個字母在哪裡ISO 639-2 語言代碼。目前 18.04 儲存庫上有 123 種語言。然後使用例如:
tesseract mySpanishText.jpg output -l spa
答案2
從圖像中提取文字的行為被稱為OCR
,Ubuntu 有一個 wiki 頁面專門用於光學字元辨識。從該頁面:
可用的 OCR 工具
Ubuntu Universe 儲存庫包含以下 OCR 工具:
- 戈克- 命令列 OCR
- 模糊化- spamassassin 外掛程式檢查圖片附件
- libhocr0- 希伯來文 OCR
- 奧克拉德- 光學字元辨識程式
- OCR饋送器- 文件佈局分析和光學字元辨識系統
- 奧克羅普斯- 文件分析和OCR系統
- tesseract-ocr
Ubuntu multiverse 儲存庫還包含:
- 楔形文字- 多語言OCR系統
有些包已經過時了,但非官方的新鮮包可以在亞歷克斯_P PPA(PPA 新增程式碼:ppa:alex-p/notesalexp)。如果您從未使用過 PPA 支票如何從 PPA 新增軟體。
編輯:如評論所示克拉拉 OCR也存在,但它在 Hardy 上被迷住了,他們的網站最後更新時間是 2009 年。
答案3
答案4
使用tesseract-ocr
我們可以提取文字從圖片。我已經測試過gocr
,與tesseract-ocr
安裝:
sudo apt-get install tesseract-ocr
Python
轉換所有圖像檔案的程序PNG目前目錄內的副檔名TXT文件
#!/usr/bin/env python3.10
import os
import subprocess
def list_files(path):
files = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name)):
files.append(os.path.join(path, name))
return files
def convertImageToText(img_file):
#process = subprocess.Popen(['tesseract', img_file,
# ''.join(img_file.rsplit('.png', 1))])
os.system(f"tesseract {img_file} {''.join(img_file.rsplit('.png', 1))}")
def startOperation():
list_file = list_files(".")
print(list_file)
for img_file in list_file:
if img_file.lower().split(".")[-1] == "png":
convertImageToText(img_file)
startOperation()