У меня есть изображения, которые зашумлены некоторыми случайными линиями, например, следующим:
Я хочу применить к ним некоторую предварительную обработку, чтобы удалить нежелательный шум (линии, искажающие текст), чтобы я мог использовать их с OCR (Tesseract).
Мне пришла в голову идея использовать расширение чтобы удалить шум, затем используйте эрозию, чтобы исправить недостающие части надписи на втором этапе.
Для этого я использовал этот код:
import cv2
import numpy as np
img = cv2.imread('linee.png', cv2.IMREAD_GRAYSCALE)
kernel = np.ones((5, 5), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
cv2.imwrite('delatedtest.png', img)
К сожалению, расширение не сработало, линии шума все еще существуют.
Я попытался изменить форму ядра, но стало хуже: записи были частично или полностью удален.
Я также нашел ответ, в котором говорилось, что можно удалить строки,
превращение всех черных пикселей с двумя или менее соседними черными пикселями в белые.
Это кажется мне немного сложным, так как я новичок в компьютерном зрении и opencv.
Любая помощь будет принята с благодарностью, спасибо.