Это работает для некоторых из них (1, 2, 3, 5, 6, 20.. .), но мне бы хотелось, чтобы это работало для всех из них.
Вот образец данных, которые я использую:

[img]https://i.sstatic. net/8AicFUTK.png[/img]

Изображения очень маленькие (75x26), шрифт довольно плохой, но явно читаемый человеком.< /p>
Я попытался выполнить некоторую предварительную обработку, потому что в этом случае она не обнаруживает многого, но даже при предварительной обработке у меня возникают проблемы с обнаружением таких чисел, как 7, 11, 415...Я проверил много всего, но вот версия, которая определяет большую часть моих чисел:
Код: Выделить всё
from PIL import Image, ImageEnhance
image = Image.open(f"{i}.png")
gray = image.convert("L")
enhancer = ImageEnhance.Contrast(gray)
image_enhanced = enhancer.enhance(2.0)
text = pytesseract.image_to_string(image_enhanced, config="--psm 6 -c tessedit_char_whitelist=0123456789")
print(text)



Код: Выделить всё
img = cv2.imread(f'/content/{i}.png')
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 170, 255, cv2.THRESH_BINARY)
text = pytesseract.image_to_string(thresh, config="--psm 6 -c tessedit_char_whitelist=0123456789")
Я знаю, что могу «тонко настроить» pytesseract но это похоже на базовую вещь, поэтому мне было интересно, не делаю ли я это как-то неправильно, прежде чем терять больше времени...
Подробнее здесь: https://stackoverflow.com/questions/793 ... ge-to-text
Мобильная версия