Используя различные методы, я изменил капчу изображения, чтобы она выглядела примерно так
Однако при использовании распознавания текста в Pytesseract пакет не может идентифицировать какой-либо символ, и я думаю, что это связано со строкой над буквами.
script.py
cv2.imwrite(filename, imgOP)
text = pytesseract.image_to_string(Image.open(filename))
Вывод в консоль для изображения отсутствует
Однако, когда попробовал с другим изображением (приведенным ниже), я получил вывод как
PGKQKf
Что опять не так из-за строки над буквой T
Я использовал различные методы для очистки изображений, такие как эрозия, расширение, а также вероятностное преобразование Хафа (результат приведен ниже)
#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, приведенные ниже. Однако как это сделать и использовать его для идентификации символов?