![](/img/trans.png)
[英]How to read black text on black background image through tesseract OCR?
[英]Why can't tesseract extract text that has a black background?
我附上了一個非常簡單的文本圖像,我想要從中獲取文本。 它是黑色背景的白色。 在肉眼看來,它似乎是絕對清晰的,但顯然對它來說是垃圾。 我嘗試更改 oem 和 psm 參數,但似乎沒有任何效果。 請注意,這適用於其他圖像,但適用於這個。
請嘗試在您的機器上運行它,看看它是否有效。 否則我可能不得不完全改變我的 ocr 引擎。
注意:在我嘗試在圖像周圍添加黑色像素以幫助提取過程之前,它一直在工作。 另外我不認為 tesseract 是在白色背景上的黑色文本上訓練的。 它也應該能夠做到這一點。 另外,如果這是真的,為什么它適用於與此格式相同的其他文本圖像
編輯:奇跡般地,我再次嘗試運行腳本,這次它能夠正確提取 Chand,但在下面提到的情況下失敗了。 另請查看我使用的參數。 我已經閱讀了文檔,我覺得這將是正確的選擇。 我已添加圖片供您參考。 這不僅僅是這張圖片。 為什么 tesseract 對於如此簡單的用例會失敗?
要找到所需的結果,您需要了解以下內容:
輸入圖像用粗體書寫,我們需要縮小粗體字體,然后假設 output 為單個統一的文本塊。
為了縮小圖像,我們可以使用侵蝕
結果將是:
代碼:
# Load the library
import cv2
import pytesseract
# Initialize the list
img_lst = ["lKpdZ.png", "ZbDao.png"]
# For each image name in the list
for name in img_lst:
# Load the image
img = cv2.imread(name)
# Convert to gry-scale
gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Erode the image
erd = cv2.erode(gry, None, iterations=2)
# OCR with assuming the image as a single uniform block of text
txt = pytesseract.image_to_string(erd, config="--psm 6")
print(txt)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.