2

我正在尝试使用 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中运行它。

谁能帮我解决这个问题?

input.png 样本

4

2 回答 2

7

Bangla(india)在 Windows 中添加了语言。下载ben.traineddataTESSDATA_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')

输出:

প্রত্যাবর্তনকারীরা
তাঁদের দেশে গিয়ে

প্রত্যাবর্তন-পরবর্তী
আর্থিক সহায়তা
পাবেন তার
于 2017-03-27T18:03:31.380 回答
0

我已经从这里在 Windows 中安装了一些字体

https://www.omicronlab.com/bangla-fonts.html

之后,它在 Pycharm 中对我来说非常好用。

于 2021-02-11T11:34:13.277 回答