@maryaTurova

Каким способом удалить шум на картинке?

Собственно много чего перепробовал, но так и не удалось достичь желаемого результата.
Дело в том что пиксели шума такие же как и текста и при их удалении удаляется и часть текста.
мои эксперименты
img=cv2.imread('sample.png',cv2.IMREAD_UNCHANGED)
scale_percent = 250  # percent of original size
width = (img.shape[1] * scale_percent) // 100
height = (img.shape[0] * scale_percent) // 100
dim = (width, height)
scaled_img = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
#kernel - это матрица, с которой изображение
kernel = np.ones((2,2), np.uint8)
# Эрозия изображения
img_erosion = cv2.erode(scaled_img, kernel, iterations=1)

# РАЗМЫТИЕ ПО ГАУССУ
bin_img = cv2.GaussianBlur(img_erosion, (5, 5), 0)
cv2.imwrite('output.png',bin_img)

Пример картинки:

625d7903a21e6733023239.png

Картинку мне необходимо распознать через pytesseract.
Как-то можно уменьшить данный шум?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Максимум что тут можно сделать - пройтись алгоритмом connected component и отсеять все компоненты, у которых слишком маленькая площадь. Но и это повредит текст, например, удалит точки на i.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@miner2100
У меня алгоритм по удалению такого мусора занимает 64 строки на js.
Ищет на картинке все точки, у которых только 1 соседняя, скидывает координаты в список. А потому выделяет из них те, что рядом и удаляет их. Чистит картинку процентов на 80
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
27 апр. 2024, в 13:49
300000 руб./за проект
27 апр. 2024, в 13:30
30000 руб./за проект
27 апр. 2024, в 13:22
600 руб./за проект