Создайте предопределенный 2D фильтр
возвращает вращательно симметричный Гауссов фильтр 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(:)))