Python PyTesseract 精度改进
Python PyTesseract Acuracy Improvement
我知道之前有人问过这个问题,我一直在尝试几种不同的方法并进行更改,但无法弄清楚如何让它发挥作用。我有一堆页面可以完美地工作。这是布局完美的明文。但出于某种原因,在其中一张纸上它搞砸了并且阅读了完全错误的信息。下面我附上了我的代码、输出和图像。
import pytesseract
import cv2
import numpy as np
img = cv2.imread('page_3.jpg')
img = cv2.resize(img, None, fx=2, fy=2)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1, 1), np.uint8)
cv2.imwrite('thresh.png', img)
for psm in range(6, 13 + 1):
config = '--oem 3 --psm %d' % psm
txt = pytesseract.image_to_string(img, config=config, lang='eng')
print('psm ', psm, ':', txt)
照片如下:
然后是输出。由于某种原因,它可以完美运行到最后。所有输出(psm 6、11 和 12)的读数完全相同。感谢任何帮助。
1885-1015
1886-1280
1956-0044
2087-0047
2087-0155
2087-1433
2221-0093L
2221-0093R
2331-4628R
2992-/114R
29593-0007R
您的图片根本不需要任何预处理。它已经是完美的和结构化的。因此,在将图像传递给 tesseract
之前尽量不要调整图像的大小。 您的情况不需要调整大小。
希望这有帮助。
我知道之前有人问过这个问题,我一直在尝试几种不同的方法并进行更改,但无法弄清楚如何让它发挥作用。我有一堆页面可以完美地工作。这是布局完美的明文。但出于某种原因,在其中一张纸上它搞砸了并且阅读了完全错误的信息。下面我附上了我的代码、输出和图像。
import pytesseract
import cv2
import numpy as np
img = cv2.imread('page_3.jpg')
img = cv2.resize(img, None, fx=2, fy=2)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1, 1), np.uint8)
cv2.imwrite('thresh.png', img)
for psm in range(6, 13 + 1):
config = '--oem 3 --psm %d' % psm
txt = pytesseract.image_to_string(img, config=config, lang='eng')
print('psm ', psm, ':', txt)
照片如下:
然后是输出。由于某种原因,它可以完美运行到最后。所有输出(psm 6、11 和 12)的读数完全相同。感谢任何帮助。
1885-1015
1886-1280
1956-0044
2087-0047
2087-0155
2087-1433
2221-0093L
2221-0093R
2331-4628R
2992-/114R
29593-0007R
您的图片根本不需要任何预处理。它已经是完美的和结构化的。因此,在将图像传递给 tesseract
之前尽量不要调整图像的大小。