这是原始屏幕截图,我将图像裁剪成 4 部分并尽可能清除图像的背景,但 tesseract 仅检测此处的最后一列并忽略其余部分。
tesseract 的输出显示为存在我在处理结果时删除的空格
Femme—Fatale.
DaRkLoRdEIa
aChineseN1gg4
Noob_Diablo_
tesseract 的输出显示为存在我在处理结果时删除的空格
Kicked.
NosNoel
ChikiZD
Death_Eag|e_42
Chai—.
3579 10 1 7 148
2962 3 O 7 101
2214 2 2 7 99
2205 1 3 6 78
8212
7198
6307
5640
4884
15
40
40
6O
80
80
我只是转储
的输出result = `pytesseract.image_to_string(Image.open("D:/newapproach/B&W"+str(i)+".jpg"),lang="New_Language")`
但我不知道如何从这里开始以获得一致的结果。无论如何我可以强制 tesseract 识别文本区域并让它扫描它。因为在 trainer (SunnyPage) 中,tesseract 默认识别扫描它无法识别某些区域,但是一旦我手动选择所有内容都会被检测到并正确翻译成文本
Code
最佳答案
尝试使用命令行,我们可以选择决定使用哪个 psm 值。
你能试试这个吗:
pytesseract.image_to_string(image, config='--psm 6')
用你提供的图片试过,结果如下:
我面临的唯一问题是我的 tesseract 字典正在将您图像中提供的“1”解释为“我”。
以下是可用的 psm 选项列表:
pagesegmode 值为: 0 = 仅方向和脚本检测 (OSD)。
1 = 使用 OSD 自动分页。
2 = 自动页面分割,但没有 OSD 或 OCR
3 = 全自动页面分割,但没有 OSD。 (默认)
4 = 假设有一列可变大小的文本。
5 = 假设有一个统一的垂直对齐文本 block 。
6 = 假设一个统一的文本 block 。
7 = 将图像视为单个文本行。
8 = 将图像视为单个词。
9 = 将图像视为圆圈中的单个单词。
10 = 将图像视为单个字符。
关于python - tesseract 的 OCR 结果高度不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205514/