Используя различные методы, я изменил капчу изображения, чтобы она выглядела примерно так.
Однако при использовании 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 более точным, однако я не понимаю, какой из них мне следует использовать.
Помимо Tesseract, существуют ли какие-либо другие методы, которые можно было бы применить для получения желаемых результатов.
Я подумал о создании маски, где с помощью онлайн-инструмента я преобразовал изображение в 0 и 1, указанные ниже. Однако как это сделать и использовать для идентификации персонажей?