С помощью чего можно получить текст с этой картинки?
нужно получить текст с обработанного изображения с помощью любых библиотек(кроме нейросетей). На вход подавалась данная картинка
, код обработки:
import cv2
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Tesseract-OCR\tesseract.exe'
im = Image.open("7TXB6Q.png")
im = im.convert("P")
im2 = Image.new("P",im.size,255)
im = im.convert("P")
temp = {}
for x in range(im.size[1]):
for y in range(im.size[0]):
pix = im.getpixel((y,x))
temp[pix] = pix
if pix > 2: # these are the numbers to get
im2.putpixel((y,x),0)
im2.save("output.png")
im = cv2.imread("output.png")
im = im[0:90, 35:150]
cv2.imwrite("output.png",im)
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.imshow("gray",gray)
cv2.waitKey()
После обработки картинка выглядит так:
. Пробовал получить текст с помощью метода image_to_string
data = pytesseract.image_to_string(im, lang='eng', config='--psm 6 --oem 3 -c tessedit_char_whitelist= ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
print(data)
Но он выдаёт на выходе строку , FERRE
Хотелось бы узнать возможно есть более качественные методы получения текста, или возможно, наболее подходящие для обработки изображений данного типа различные алгоритмы, любая ваша корректировка или совет будут очень ценны для меня, т.к я новичок в данной области
Ответы (1 шт):
Автор решения: GunTHE
→ Ссылка
- По возможности хорошо бы увеличить разрешение картинки, текст на которой Вы хотите распознать, тут нужно будет долго провозиться для подбора оптимального увеличения. Я использовал метод resize у CV2, помимо смены разрешения, у него есть такой атрибут "interpolation", вроде бы правильно написал, так вот хорошим методом при увеличении разрешения является cv2.INTER_CUBIC. Пробовал cv.INTER_LINEAR, но с ним похуже, но с другой стороны пишут, что он быстрее работает.
- Убрать шумы с помощью CV2. Зайдите на оф. сайт CV2 и найдите там уроки по работе, долистайте до раздела работы с картинками, там будет очень много информации по удалении шумов, попробуйте все методы.
- Вы применяете какое-то странное преобразование в черно-белый цвет, у Вас после преобразования BGR-GRAY остается множество различных оттенков. Попробуйте другие методы преобразования. BINARY-метод оставляет только 2 цвета, без оттенков.