使用pytesseract改善结果时如何设置config load_system_dawg?

时间:2019-08-11 22:44:22

标签: python ocr tesseract python-tesseract

我正在尝试通过使用pytesseract配置更改参数来改善结果。我想知道是否有可能更改https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method中指定的load_system_dawg和load_freq_dawg,因为我尝试获取的单词不是真正的英语,而是诸如XYZ ###之类的坐标以及其他一些独特的字母序列。查看截图

minecraft screenshot

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

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

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

1 个答案:

答案 0 :(得分:0)

您需要了解以下内容:

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

enter image description here

下次申请bitwise_not

enter image description here

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

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