У меня есть изображения, которые зашумлены некоторыми случайными линиями, такими как следующая:
Я хочу применить к ним некоторую предварительную обработку, чтобы удалить нежелательный шум (линии, которые искажают запись)так что я могу использовать их с 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.
Буду признателен за любую помощь, спасибо.