Начало работы с шумоподавляющими элементами массива 200x200 numpy - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть массив 200x200 numpy, который имеет форму, которую я вижу, когда я рисую его с помощью функции imshow() matplotlib. Тем не менее, на этой фотографии также много шума. Я пытаюсь использовать openCV, чтобы подчеркнуть форму и придать шуму изображение. Но он продолжает выдавать сообщения об ошибках, которые я не понимаю. Что я должен сделать, чтобы начать с шумоподавляющей проблемы. Форма видна мне так, как я ее вижу, но дополнительный шум был добавлен с помощью функции np.random.randint() в верхней части изображения. Я хочу уменьшить этот шум

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Я решил проблему с помощью Scikit Image. У них есть очень доступная страница документации для новичков, и сообщения об ошибках намного легче понять. Что касается моей проблемы, я должен был использовать библиотеку восстановления Scikit Image , которая имеет много шумоподавляющих функций, очень похожих на openCV, однако примеры и простые для понимания сообщения об ошибках действительно помогли. Игра с Двусторонними фильтрами и Нелокальные средства Denoising решила проблему для меня.

0 голосов
/ 15 февраля 2020

Вот несколько уроков о методах шумоподавления изображений, доступных в opencv.

Размытие шума

Основное c применяет размывание для усреднения случайного шума. Это отрицательно скажется на том, что края изображения будут не такими резкими, как изначально. В зависимости от вашего приложения, это может быть хорошо. В зависимости от количества шума, вы можете изменить размер фильтра k. Чем больше значение, тем более размытое изображение с меньшим шумом.

k = 5
filtered_image = cv.blur(img,(k,k))

Усовершенствованное удаление шума

В качестве альтернативы, вы можете использовать более продвинутые методы, такие как Удаление нелокальных средств, Это применяет усреднение по аналогичным патчам на изображении. У этого метода есть еще несколько параметров для настройки на ваше конкретное приложение c, о котором вы можете прочитать здесь . (Существуют разные версии этой функции для полутоновых и цветных изображений, а также для последовательностей изображений).

luminosity_filter_strength = 10
colour_filter_strength = 10
template_window_size = 7
search_window_size = 21
filtered_image = cv.fastNlMeansDenoisingColored(img,
        luminosity_filter_strength,
        colour_filter_strength,
        template_window_size,
        search_window_size)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...