Обработка изображений для удаления шума с изображения - PullRequest
1 голос
/ 10 мая 2019

Я использую opencv для обработки изображений.

Я хотел бы преобразовать свое изображение только в черно-белое, но есть какой-то серый цвет (шум), который я хотел бы удалить

Вот мое изображение:

click here

Мне бы хотелось иметь черно-белое изображение, чтобы получить четкий текст:

» УЧАСТИЕ -3,93 С Redevance Patronale -1,92 C «

Я пытался изменить порог изображения с помощью OpenCV, но безуспешно

#grayscale
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#binary
ret,thresh = cv2.threshold(gray,175,255,cv2.THRESH_BINARY_INV)

Ответы [ 2 ]

2 голосов
/ 19 мая 2019

Я думаю, что вы хотите удалить шум изображения.Для этого вы можете выбрать нижнее пороговое значение.Я выбрал 64, используя ret,thresh = cv2.threshold(img,64,255,cv2.THRESH_BINARY), и получил такой результат:

thresholded image

Но это не так ясно, и буквы очень тонкие, поэтому мы используем cv2.erode.Это дает:

eroded image

и теперь мы выполняем cv2.bitwise_or между исходным изображением и размытым изображением, чтобы получить изображение без шума.

result

Полный используемый код

img = cv2.imread('grayed.png', 0)
ret,thresh = cv2.threshold(img,64,255,cv2.THRESH_BINARY)
kernel = np.ones((5, 5), np.uint8)
erode = cv2.erode(thresh, kernel, iterations = 1)
result = cv2.bitwise_or(img, erode)
0 голосов
/ 10 мая 2019

Ваше преобразование цветов преобразуется в изображение RGB с серым цветом (в соответствии с GIMP это все еще изображение RGB).В документации opencv говорится, что изображение должно быть серого цвета, а не цветного.Даже если ваше изображение серое, оно все равно цветное.Не уверен, что цветное изображение с пространством серого цвета совпадает с изображением в оттенках серого.

Это действительно дубликат: -

Преобразование изображения OpenCV в черно-белое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...