Алгоритм, используемый в fspecial
, приведен в документации , которая очень проста в вашем случае
>> fspecial('average',3)
ans =
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
>> ones(3,3)/(3*3)
ans =
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
Чтобы реализовать медианную фильтрацию, вы должны пройти каждый пиксель наобраз.Если in(x,y)
является значением пикселя с координатами x,y
во входном изображении, тогда out(x,y)
будет медианой in(x-1:x+1,y-1:y+1)
в вашем случае с окном [3,3]
.Я думаю, вы должны реализовать это сами, так как это домашнее задание.
Для вашей информации, filter2(fspecial('average',3),RGB)/255;
не устраняет шум соли и перца.Это размывает изображение, то есть удаляет гауссов шум, но я на самом деле рекомендую гауссовское окно для этого.Вы можете прочитать this для создания ядра Гаусса, которое может помочь вам лучше понять fspecial
.