Jakieś sugestie dotyczące konwersji tych obrazów na tekst? Używam pytesseract i działa wspaniale w większości przypadków z wyjątkiem tego. Najlepiej, gdybym dokładnie przeczytał te liczby. W najgorszym przypadku mogę po prostu spróbować użyć PIL, aby określić, czy liczba po lewej stronie "/" wynosi zero. Zacznij od lewej strony i znaleźć pierwsze biały piksel, a następnieCzytanie tekstu z obrazu
from PIL import Image
from pytesseract import image_to_string
myText = image_to_string(Image.open("tmp/test.jpg"),config='-psm 10')
myText = image_to_string(Image.open("tmp/test.jpg"))
Ukośnik w środku powoduje tu zagadnień. Próbowałem także użyć "Paste" PILa, aby dodać wiele dodatkowych czarnych wokół obrazu. Mogę spróbować kilku innych sztuczek PIL, ale wolałbym nie iść tą drogą, chyba że muszę.
Próbowałem użyć config = '- psm 10', ale moje 8-y przychodziły jako ":" czasami, a losowe znaki innym razem. I moje zero było już w zasięgu.
odniesienie do: pytesseract don't work with one digit image do -psm 10
_____________EDIT_______________ Dodatkowe próbki:
Więc robię jakieś konwersje voodoo, które wydają się działać teraz. Ale wygląda bardzo podatne na błędy:
def ConvertPPTextToReadableNumbers(text):
text = RemoveNonASCIICharacters(text)
text = text.replace("I]", "0")
text = text.replace("|]", "0")
text = text.replace("l]", "0")
text = text.replace("B", "8")
text = text.replace("D", "0")
text = text.replace("S", "5")
text = text.replace(".I'", "/")
text = text.replace(".I", "/")
text = text.replace("I'", "/")
text = text.replace("J", "/")
return text
Ostatecznie generuje:
ConvertPPTextToReadableNumbers return text = 18/20
ConvertPPTextToReadableNumbers return text = 0/5
ConvertPPTextToReadableNumbers return text = 10/10
ConvertPPTextToReadableNumbers return text = 20/20
'-psm 10' jest do jednorazowego rozpoznawania znaków, można spróbować' PSM 7' (pojedyncza linia tekstu) Ref: https://github.com/tesseract-ocr/tesseract/wiki/Command-Line -Usage – Gwen
Zostawiłem tam kilka szczegółów, to co zrobiłem z psm 10 to próba wykadrowania pierwszej postaci, a następnie użycie psm 10. Udało mi się czasami wykadrować pierwszy znak, ale było niespójne.Nawet wtedy, gdy mogę samemu wykroić 8, byłoby to zinterpretowane jako: lub coś innego. I inne postacie też się nie pojawiały. Nawet gdy sam wycinam 0, to jest on pusty. – LampShade
Używając psm 7, konsekwentnie czyta "0 \ 5" jako DIS, co może być wystarczająco dobre dla mojego najgorszego przypadku. Mogę po prostu sprawdzić D i będę wiedział, że to 0 /. Jeśli ktokolwiek ma lepsze rozwiązanie, zachęcamy do dzwonienia. Żałuję, że nie było sposobu, aby powiedzieć "Interpretuj wszystko jako liczby". – LampShade