[英]Detecting Bangla character using pytesseract
我正在嘗試使用 python 從圖像中檢測孟加拉字符,所以我決定使用pytesseract 。 為此,我使用了以下代碼:
import pytesseract
from PIL import Image, ImageEnhance, ImageFilter
im = Image.open("input.png") # the second one
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save('temp2.png')
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
text = pytesseract.image_to_string(Image.open('temp2.png'),lang="ben")
print text
問題是,如果我給出了英文字符的圖像,則會被檢測到。 但是,當我編寫lang="ben"
並從孟加拉語字符的圖像中檢測時,我的代碼會運行無休止的時間或永遠。
PS:我已將孟加拉語訓練數據下載到 tessdata 文件夾,我正在嘗試在PyCharm 中運行它。
誰能幫我解決這個問題?
我在 Windows 中添加了Bangla(india)
語言。 下載ben.traineddata
到TESSDATA_PREFIX
它等於C:\\Program Files\\Tesseract 4.0.0\\tessdata
在我的電腦。 然后跑,
> tesseract -l ben bangla.jpg bangla_out
在命令提示符下並在 2 秒內得到以下結果。 即使我不懂語言,結果看起來也不錯。
您是否嘗試在命令提示符下運行 tesseract 以驗證它是否適用於-l ben
?
編輯:
使用了Spyder ,類似於 PyCharm,它與 Anaconda 一起來測試它。 修改您的代碼以調用 Tesseract,如下所示。
pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe"
Spyder 中的測試代碼:
import pytesseract from PIL import Image, ImageEnhance, ImageFilter import os im = Image.open("bangla.jpg") # the second one im = im.filter(ImageFilter.MedianFilter()) enhancer = ImageEnhance.Contrast(im) im = enhancer.enhance(2) im = im.convert('1') im.save("bangla_pp.jpg") pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe" text = pytesseract.image_to_string(Image.open("bangla_pp.jpg"),lang="ben") print text
它在處理后的圖像上工作並產生以下結果。 顯然,處理后的圖像的 OCR 結果不如原始圖像。
處理 bangla_pp.jpg 的結果:
প্রত্যাবর্তনকারীরা তাঁদের দেশে গিয়ে -~~-<~~~~-- প্রত্যাবর্তন-পরবর্তী আর্থিক সহায়তা = পাবেন তার
原始圖像的結果,直接提供給 Tesseract。
代碼:
from PIL import Image import pytesseract as tess print tess.image_to_string(Image.open('bangla.jpg'), lang='ben')
輸出:
প্রত্যাবর্তনকারীরা তাঁদের দেশে গিয়ে প্রত্যাবর্তন-পরবর্তী আর্থিক সহায়তা পাবেন তার
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.