Подтвердить что ты не робот

Гауссовское сглаживание в MATLAB

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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