Я пытаюсь извлечь рукописную информацию из отсканированной формы открытия счета.
Для этого я использую Python-библиотеку Python для извлечения текстовых данных.
Но при использовании этого модуля у меня много ошибок в выводе, так как я получаю неровные символы.
Кроме того, поля в форме, в которой пользователь записывает свою личную информацию, такую как имя, адрес, DOB и т. Д., Также вызывают проблемы, так как модуль pytesseract обнаруживает ее как букву «I». Так есть ли способ справиться с этими коробками?
Также есть ли другой способ решения этой задачи? если есть, пожалуйста, предложите. Это отсканированная форма, над которой я работаю
Ниже код, который я сделал
import matplotlib.pyplot as plt
import pytesseract
from PIL import Image
from nltk.tokenize import sent_tokenize, word_tokenize
image = Image.open('printer1.jpg')
print(image.info['dpi'])
image.save("new_img.jpg", dpi=(400,400)) # increased the dpi and saved it
new_img = Image.open('new_img.jpg')
width, height = new_img.size
new_size = width*2, height*2
new_img = new_img.resize(new_size, Image.LANCZOS) #sampling
new_img = new_img.convert('L') #converted it to grayscale
new_img = new_img.point(lambda x: 0 if x < 180 else 255, '1')
#evaluatingevery single pixel in the image for binarization
plt.imshow(new_img)
plt.show()
text = pytesseract.image_to_string(new_img)
text_array = word_tokenize(text)
print(text_array)
Name_Data = text_array[text_array.index('Proof')+2 :
text_array.index('FIRST')-1]
print(Name_Data)
Name = ""
for i in Name_Data:
if i == 'I':
pass
else:
Name += i
print(Name)