Pytesseract не может распознавать символы в двоичных изображениях

Используя различные методы, я изменил капчу изображения, чтобы она выглядела примерно так

Первое изображение с картинки

Однако, при использовании Pytesseract OCR, пакет не может идентифицировать какой-либо символ, и я думаю, что это связано со строкой над буквами.

script.py

 cv2.imwrite(filename, imgOP)
 text = pytesseract.image_to_string(Image.open(filename))

Вывод в консоль для изображения отсутствует

Однако, когда попробовал с другим изображением (приведенным ниже), я получил вывод как

Второе изображение Капча

PGKQKf

Что опять не так из-за строки над буквой Т

Я использовал различные методы для очистки изображений, такие как эрозия, расширение, а также вероятностное преобразование Хафа (результат приведен ниже)

#Hough Line Transform
img = cv2.imread('Output1.png')
edges = cv2.Canny(img, 1000, 1500)
minLineLength = 0
maxLineGap = 10000000000
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 15, minLineLength, maxLineGap)
for x in range(0, len(lines)):
    for x1, y1, x2, y2 in lines[x]:
        cv2.line(img, (x1, y1), (x2, y2), (255, 255, 255), 2)

cv2.imwrite('houghlines3.jpg', img)

где изображение после преобразования выглядит примерно так

введите описание изображения здесь

Любая другая комбинация значений minLineLength и maxLineGap не работает.

Как двигаться дальше? Я проверил различные методы, чтобы сделать Тессеракт более точным, но я не уверен, какой из них мне следует использовать.

Помимо Tesseract, есть ли другие методы, которые могут быть применены для получения желаемых результатов.

Я думал о создании маски, где с помощью онлайн-инструмента я преобразовал изображение в 0 и 1, приведенное ниже. Однако как это сделать и использовать его для идентификации персонажей?

Двоичный текст

0 ответов

Другие вопросы по тегам