Создайте предопределенный фильтр 2-D
возвращает вращательно симметричный Гауссов lowpass фильтр размера h
= fspecial('gaussian',hsize
,sigma
)hsize
со стандартным sigma отклонения
. Не рекомендуется. Использовать imgaussfilt
или imgaussfilt3
вместо этого.
возвращает фильтр, чтобы аппроксимировать, после свертки с изображением, линейное движение камеры. h
= fspecial('motion',len
,theta
)len
задает длину движения и theta
задает угол движения в степенях в направлении против часовой стрелки. Фильтр становится вектором для горизонтальных и вертикальных движений. Значение по умолчанию len
является 9
и значение по умолчанию theta
является 0
, что соответствует горизонтальному движению в девять пикселей.
возвращает фильтр 3 на 3, который подчеркивает горизонтальные ребра путем аппроксимации вертикального градиента. Чтобы подчеркнуть вертикальные ребра, транспонируйте фильтр h
= fspecial('prewitt')h'
.
[ 1 1 1 0 0 0 -1 -1 -1 ]
возвращает фильтр 3 на 3, который подчеркивает горизонтальные ребра, используя эффект сглаживания путем аппроксимации вертикального градиента. Чтобы подчеркнуть вертикальные ребра, транспонируйте фильтр h
= fspecial('sobel'
)h'
.
[ 1 2 1 0 0 0 -1 -2 -1 ]
Средние фильтры:
ones(n(1),n(2))/(n(1)*n(2))
Гауссовы фильтры:
Лаплакские фильтры:
Лапласиан Гауссов (LoG) фильтров:
Обратите внимание, что fspecial
сдвигает уравнение, чтобы убедиться, что сумма всех элементов ядра равна нулю (подобно ядру Лапласа), так что результат свертки однородных областей всегда равен нулю.
Фильтры движения:
Создайте идеальный сегмент линии с длиной и углом, заданными аргументами len
и theta
, с центром в центральном коэффициенте h
.
Для каждого местоположения коэффициента (i,j)
вычислите ближайшее расстояние между этим местоположением и идеальным сегментом линии.
h = max(1 - nearest_distance,0);
Нормализуйте h
: h = h/(sum(h(:)))