首页 > 解决方案 > 使用 pytesseract 提高结果时如何设置配置 load_system_dawg?

问题描述

我正在尝试通过使用 pytesseract 配置更改参数来改善结果。我想知道是否有可能按照https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method中指定的方式更改 load_system_dawg 和 load_freq_dawg,因为我想要得到的词并不是真的英语,但像 XYZ ### 和其他一些独特的字母序列这样的坐标。看截图

我的世界截图

我可以调整 --psm 的配置,但是如果我尝试 --load_system_dawg 0,则会出现没有这样的命令行参数或文件不存在的错误。我不知道,似乎值得一试......

params = r'--psm 11'
string = pytesseract.image_to_string(img, config = params)

我假设没有办法通过 python 做到这一点,但如果我可以指导如何改变它,我会很感激,因为我对 C++ 的方式了解不多。这个改变会通过pytesseract初始化吗?此外,我也尝试过更改用户模式,但不确定这是否是更好的方法

标签: pythonocrtesseractpython-tesseract

解决方案


您需要了解以下内容:

例如,如果您应用阈值图像将变为:

在此处输入图像描述

接下来申请bitwise_not

在此处输入图像描述

现在,如果您阅读(假设图像是单个统一的文本块。):

Hinecratt 1.14.4 1.14.4 / vanilla Javea: 136 51 64bit
68 fps (8 chunk updates) T: inf vsune fancy-clouds veo Hem: 4ah 8757 2648NE
Integrated server @ 11 ms ticks, 13 tx, 735 rx Allocated: 814% 1664M6
C: 1615376 (5) 0: 15, pC: G66, pu: 6, ab: Se
c afte oe CPU: 16% AND Fiyzen 7 L786 ECight-Core Processor
Client Chunk Cache: 1659, 75 Display: 1926%1880 CHVIOIA Corporation?
ServerChunkCache: S734 GeForce OTA 1666 606/PCle/55E2
ninecrattoverworld FC: a 4.6.4 HVIDIA 431.68
42: S6L641 / 11.66668 ¢ 361.939 Targeted Block
Block: S61 11 361 Hinecrattiron_ore
Chunk: 13 11 3 in 18 @ 22
Facing: west (Towards negative 43 095.4 7 15.79 Targeted Fluid
Client Light: 11 (8 sky, 11 block? ninecrattempty
Server Light: (8 sky, 11 black?
CHS: 67 MH: 67
5H 3:67 0: 67 M: 67 ML: 67
Biome: minecrattdesert
Local Difficulty: 165 7/7 6.66 (Day 243
Looking at block: 295 16 361
Looking at liquid: 295 16 361
Sounds: 37247 + a7G
Debug: Pie Cehittl: hidden FPS + TPS Caltl: hidden
For hele: press Fa + oO

代码:

import cv2
import numpy as np
import pytesseract

# Load the image
img = cv2.imread("sPQDo1c.png")

# Convert to the HSV color-space
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Threshold
thr = cv2.inRange(hsv, np.array([0, 0, 214]), np.array([179, 0, 225]))

# Bitwise-not
bnt = cv2.bitwise_not(thr)

# OCR
print(pytesseract.image_to_string(bnt, config="--psm 6"))

# Display
cv2.imshow("", bnt)
cv2.waitKey(0)

我正在使用 pytesseract 版本0.3.7


推荐阅读