使用 Tesseract-OCR 和 OpenCV 进行土耳其语字符识别

Turkish character recognition using Tesseract-OCR and OpenCV

我正在尝试在 Python 中使用 Tesseract-OCR 和 OpenCV 检测图像(jpg 文件)的文本部分。图片的文本部分是土耳其语,因此我使用的是 Tesseract-OCR 文件中的 'Turkish trained data (tur)'。在使用 tesseract 之前,我已经应用膨胀和腐蚀来消除噪音。

问题是,虽然可以检测到特定区域的部分字符,但检测大多不成功,无法检测到土耳其字符。你知道任何方法或者你有什么建议可以取得更大的成功吗?下面是我的代码:

import pytesseract
from PIL import Image
import cv2

img= cv2.imread('C:\Users\gulsa\Desktop\Tesseract-OCR\alm98_2.jpg')
img = Image.open('alm98_2.jpg')
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-
OCR/tesseract'

tex = pytesseract.image_to_string(Image.open('alm98_2.jpg'),lang='tur')
print(tex)

提前致谢!

这是我在你的图像上使用 tesseract 后得到的结果

HerTürdenErutikyıdeplç'nTıkla!Sımsıkainlemereoyo AnındaCebirıdenIde!Iziemeklçin18YaşındanBüyükoin'ak Zorunludur.HerkamgoridenyüzleroevideoHighDefTvde!High DefTv,abonelik"servistir.Pakelhaîlaliktümvergilerdahilolamk ayda64TLyebtaIedimedig'süreoeherz—ıyyenileneoekîir.Servis ücreti,aboneoldugınuzoperaîöfündüzenleyecegifaîuralar karaliylaveyaönödemelihatlardanTL/Krmikîaridüsülerekîahsil edilecektir.Ipîaliğn:|PTALya24329z-ıgörder.Iptaledilendönem içinücretiadasiyapiin'azXeteriibakiyenizyokayükleme

到目前为止,这似乎不是一个非常糟糕的结果。不是说它很好,而是与土耳其字母无关。如果您能够检测并分离此时彼此距离太近的字母,您可以获得更好的结果。

例如,对于这张图片,我得到了完美的结果(注意更好的字体,字符之间更多 space)

Her Türden Erotik Video Için Tıkla!Sımsicak Binlerce Videoyu

如果您收到很多肯定不在土耳其字母表中的嘈杂字母(例如 fl 或 î 符号)- 您可以创建一个黑名单。

另一种选择是逐个字符地遍历 tesseract 结果并更正它们(如果您可以为此使用任何启发式算法)。

编辑:TBH,当我尝试阅读你图片上的文字时,我无法将单词与句子分开,也许它是你使用的特定字体,但它对人和机器来说绝对看起来太苛刻了。

Edit2:在字符

之间添加了更多 space 示例图像