Как убрать шум в изображении OpenCV, Python? - PullRequest
2 голосов
/ 27 мая 2020

У меня есть обрезанные изображения, и мне нужны изображения с черным текстом на белом фоне. Сначала я применяю адаптивную пороговую обработку, а затем пытаюсь убрать шум. Хотя я пробовал много методов удаления шума, но когда изображение изменилось, методы, которые я использовал, не дали результата.

enter image description here

Лучший метод преобразования цвета изображения в бинарный файл для моих изображений - это адаптивный гауссовский порог. Вот мой код:

im_gray = cv2.imread("image.jpg",  cv2.IMREAD_GRAYSCALE)
image = cv2.GaussianBlur(im_gray, (5,5), 1)
th =  cv2.adaptiveThreshold(image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,3,2)

enter image description here

Мне нужны гладкие значения, десятичный разделитель (точка) и постфиксные буквы. Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 27 мая 2020

Перед бинаризацией необходимо исправить неравномерное освещение фона. Например, вот так:

import cv2

image = cv2.imread('9qBsB.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (8,8))
bg=cv2.morphologyEx(image, cv2.MORPH_DILATE, se)
out_gray=cv2.divide(image, bg, scale=255)
out_binary=cv2.threshold(out_gray, 0, 255, cv2.THRESH_OTSU )[1] 

cv2.imshow('binary', out_binary)  
cv2.imwrite('binary.png',out_binary)

cv2.imshow('gray', out_gray)  
cv2.imwrite('gray.png',out_gray)

Результат: enter image description here enter image description here

1 голос
/ 27 мая 2020

Я предполагаю, что вы предварительно обрабатываете изображение для OCR (оптического распознавания символов)

У меня был проект по обнаружению номерных знаков, и это были шаги, которые я сделал, вы можете применить их к своему проекту. После того, как изображение станет серым, попробуйте применить к нему гистограмму выравнивания, это позволит области изображения с более низким контрастом получить более высокий контраст. Затем размывайте изображение, чтобы уменьшить фоновый шум. Затем примените обнаружение краев к изображению, убедитесь, что шум достаточно удален, так как ED чувствителен к нему. Наконец, примените закрытие (расширение, затем эрозию) к изображению, чтобы закрыть все маленькие дырочки внутри слов.

...