python - tesseract 的 OCR 结果高度不一致

标签 python opencv python-tesseract pytesser

enter image description here

这是原始屏幕截图,我将图像裁剪成 4 部分并尽可能清除图像的背景,但 tesseract 仅检测此处的最后一列并忽略其余部分。

enter image description here

tesseract 的输出显示为存在我在处理结果时删除的空格

  Femme—Fatale.



  DaRkLoRdEIa
  aChineseN1gg4

  Noob_Diablo_

enter image description here

tesseract 的输出显示为存在我在处理结果时删除的空格

Kicked.

NosNoel
ChikiZD
Death_Eag|e_42

Chai—.

enter image description here

3579 10 1 7 148

2962 3 O 7 101

2214 2 2 7 99

2205 1 3 6 78

enter image description here

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')

用你提供的图片试过,结果如下:

Extracted Text Out of Image

我面临的唯一问题是我的 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/

相关文章:

python - 在 OpenCV 中实现的 findContours 方法的算法效率如何?

python - 数据帧中的贝叶斯平均

opencv - 向Mat对象添加标量

python - 由于 `Warning: Invalid resolution` 错误,Tesseract OCR 图像识别失败

python - 为 OCR 拆分多列图像

python - 阻止 nosetests 打印日志信息?

python - 将数据导出到 csv 时,我的输出可能是由于制表符和空格而困惑

opencv - 为什么重建模型是使用 SfM(运动结构)的缩放版本?

c++ - OpenCV - 如何实现渐变图像模糊效果?

python - 如何检查从图像中提取的值是否已存在于Python中的txt或csv文件中?