上图是我尝试使用tesseract提取的80.00图片。我可以将其读取为80.00,但使用代码无法正确显示。
我尝试设置dpi,调整大小,拨号。但是一切都失败了。在下面的代码中,我甚至应用了一系列的拨号参数来查看是否提取了80.00。有人可以建议我该怎么做吗?
而且,它看起来是否是tesseract的新字体?如果是,那么我们真的可以使tesseract学习新字体吗?
from PIL import Image
import pytesseract
import cv2
import numpy as np
file=r"C:\temp\med\2\clips\30.png"
im = Image.open(file)
im.save(file+"-600.png", dpi=(600,600))
pytesseract.image_to_string(file+"-600.png", config="--dpi 600 --psm 6 -l eng")
size = 500, 200
im = Image.open(file+"-600.png")
im_resized = im.resize(size, Image.ANTIALIAS)
im_resized.save(file+"-7016.png", "PNG")
pytesseract.image_to_string(file+"-7016.png", config="--dpi 600 --psm 6 -l eng")
img = cv2.imread(file+"-7016.png", 0)
### After apply dilation using 3X3 kernal. The recognition results are improved.##
kernel = np.ones((3, 3), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
cv2.imwrite(file+"-7016_dilate.png", img)
tessdata_dir_config = '--tessdata-dir "D:\Program Files\Tesseract-ocr\" --psm 10'
pytesseract.image_to_string(Image.fromarray(img), config="--dpi 600 --psm 6 -l eng")
for k in range(1, 7):
for i in range(7):
img = cv2.imread(file+"-7016.png", 0)
### After apply dilation using 3X3 kernal. The recognition results are improved.##
kernel = np.ones((k, k), np.uint8)
img = cv2.dilate(img, kernel, iterations=i)
cv2.imwrite(file+"-7016_dilate.png", img)
tessdata_dir_config = '--tessdata-dir "D:\Program Files\Tesseract-ocr\" --psm 10'
res = pytesseract.image_to_string(Image.fromarray(img), config="--dpi 600 --psm 6 -l eng")
if res == '80.00':
print(k, i, res)
print(res)