Гауссово сглаживание в MATLAB - PullRequest
12 голосов
/ 05 мая 2010

Для массива m x n элементов с некоторыми зашумленными изображениями я хочу выполнить сглаживание по Гауссу . Как мне это сделать в MATLAB ?

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

1 Ответ

28 голосов
/ 05 мая 2010

Надеюсь, у вас есть набор инструментов для обработки изображений. Если это так, то вы можете создать фильтр Гаусса с помощью функции fspecial примерно так:

myfilter = fspecial('gaussian',[3 3], 0.5);

Я использовал значения по умолчанию для hsize ([3 3]) и sigma (0.5), но вы можете поэкспериментировать с ними. hsize это просто размер фильтра, в данном случае это матрица 3 x 3. Сигма - это сигма гауссовой функции (см. Внизу страницы специальной функции).

Теперь вы можете использовать imfilter для фильтрации вашего изображения:

myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate');

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

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