Реализация алгоритма шумоподавления нелокальных сред при обработке изображений - PullRequest
6 голосов
/ 30 июня 2011

Я работаю над реализацией алгоритма шумоподавления Non Local Means в C ++. Есть бумаги по этому алгоритму (, например, эта статья ), но они также не очень понятны.

Я знаю, что он использует взвешенное среднее, но я не знаю, для чего здесь используется окно исследования и как оно связано с окном сравнения.

Будучи новым пользователем, StackOverflow не позволяет мне загружать изображения. но вы можете найти формулу в разделе nl means по ссылке, указанной выше.

Ответы [ 3 ]

4 голосов
/ 30 июня 2011

Из статьи, на которую вы ссылаетесь, при определении значения результата для данного пикселя p все остальные пиксели изображения будут взвешиваться и суммироваться в соответствии с подобием их окрестностей и окрестности пикселя p.

Но это вычислительно очень дорого.Таким образом, авторы ограничивают количество пикселей, которые будут влиять на взвешенную сумму;это должно быть то, что вы называете окном поиска.Это окно поиска представляет собой область 21x21 с центром в пикселе p.Сравниваемые окрестности имеют размер 7x7 (раздел 5).

Я мог бы быстро создать прототип с помощью Mathematica, и я подтверждаю, что он становится очень дорогостоящим, когда размер окна поиска увеличивается.Я ожидаю того же поведения при реализации в C ++.

1 голос
/ 30 ноября 2012

Это было добавлено в OpenCV

http://docs.opencv.org/modules/photo/doc/denoising.html

1 голос
/ 29 февраля 2012

Здесь есть некоторый GPL-код C ++ вместе с краткой записью алгоритма первоначальными авторами здесь: http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/

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