Main Content

fspecial

미리 정의된 2차원 필터 생성

설명

예제

h = fspecial(type)은 지정된 type의 2차원 필터 h를 생성합니다. 일부 필터 유형은 다음 구문에서 보이는 것처럼 선택적 추가 파라미터를 갖습니다. fspecialh를 상관 커널로 반환합니다. 이는 imfilter와 함께 사용하기에 적절한 형식입니다.

h = fspecial('average',hsize)hsize 크기의 평균 필터 h를 반환합니다.

h = fspecial('disk',radius)2*radius+1 크기의 정사각 행렬 내에서 원형 평균 필터(필박스)를 반환합니다.

h = fspecial('gaussian',hsize,sigma)는 표준편차가 sigma인, hsize 크기의 회전 대칭 가우스 저역통과 필터를 반환합니다. 권장되지 않습니다. imgaussfilt 또는 imgaussfilt3을 대신 사용하십시오.

h = fspecial('laplacian',alpha)는 2차원 라플라시안 연산자의 형태를 근사하는 3×3 필터를 반환합니다. alpha는 라플라시안의 형태를 제어합니다.

h = fspecial('log',hsize,sigma)는 표준편차가 sigma인, hsize 크기의 회전 대칭 LoG(가우스-라플라시안) 필터를 반환합니다.

h = fspecial('motion',len,theta)는 영상에 컨벌루션을 수행한 후 카메라의 선형 움직임을 근사하는 필터를 반환합니다. len은 움직임의 길이를 지정하고, theta는 움직임의 각도를 반시계 방향의 도 단위로 지정합니다. 이 필터는 가로 방향 움직임과 세로 방향 움직임에 대한 벡터가 됩니다. 디폴트 len9이고 디폴트 theta0입니다. 이는 9픽셀의 가로 방향 움직임에 해당합니다.

h = fspecial('prewitt')는 세로 방향 기울기를 근사하여 가로 방향 경계를 강조하는 3×3 필터를 반환합니다. 세로 방향 경계를 강조하려면 필터를 전치(h')하십시오.

[ 1  1  1 
  0  0  0 
 -1 -1 -1 ]

h = fspecial('sobel')은 세로 방향 기울기를 근사하여 평활화 효과를 사용해 가로 방향 경계를 강조하는 3×3 필터를 반환합니다. 세로 방향 경계를 강조하려면 필터를 전치(h')하십시오.

[ 1  2  1 
  0  0  0 
 -1 -2 -1 ]

예제

모두 축소

영상을 읽어 들인 후 이를 표시합니다.

I = imread('cameraman.tif');
imshow(I);

Figure contains an axes object. The axes object contains an object of type image.

모션 필터를 생성한 후 이 필터를 사용하여 영상을 흐리게 만듭니다. 흐려진 영상을 표시합니다.

H = fspecial('motion',20,45);
MotionBlur = imfilter(I,H,'replicate');
imshow(MotionBlur);

Figure contains an axes object. The axes object contains an object of type image.

원판 필터를 생성한 후 이 필터를 사용하여 영상을 흐리게 만듭니다. 흐려진 영상을 표시합니다.

H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate'); 
imshow(blurred);

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

필터 유형으로, 다음 값 중 하나로 지정됩니다.

설명

'average'

평균 필터

'disk'

원형 평균 필터(필박스)

'gaussian'

가우스 저역통과 필터. 권장되지 않습니다. imgaussfilt 또는 imgaussfilt3을 대신 사용하십시오.

'laplacian'

2차원 라플라시안 연산자를 근사합니다.

'log'

LoG(가우스-라플라시안) 필터

'motion'

카메라의 선형 움직임을 근사합니다.

'prewitt'

Prewitt 가로 방향 경계 강조 필터

'sobel'

Sobel 가로 방향 경계 강조 필터

데이터형: char | string

필터의 크기로, 양의 정수 또는 양의 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. h의 행과 열 개수를 지정하려면 벡터를 사용하십시오. 스칼라를 지정할 경우 h는 정사각 행렬입니다.

'average' 필터 유형과 함께 사용할 경우 디폴트 필터 크기는 [3 3]입니다. 가우스-라플라시안('log') 필터 유형과 함께 사용할 경우 디폴트 필터 크기는 [5 5]입니다.

데이터형: double

원판 모양 필터의 반지름으로, 양수로 지정됩니다. 필터는 크기가 2*radius+1인 정사각 행렬입니다.

데이터형: double

표준편차로, 양수로 지정됩니다.

데이터형: double

라플라시안의 형태로, [0 1] 범위의 숫자로 지정됩니다. 4-이웃 라플라시안 필터를 얻으려면 alpha0으로 지정하십시오.

[ 0  1 0 
  1 -4 1 
  0  1 0 ]

데이터형: double

카메라의 선형 움직임으로, 숫자형 스칼라(단위: 픽셀)로 지정됩니다.

데이터형: double

카메라 움직임 각도(단위: 도)로, 숫자형 스칼라로 지정됩니다. 각도는 가로 방향에서부터 시계 반대 방향으로 측정됩니다.

데이터형: double

출력 인수

모두 축소

상관 커널로, 행렬로 반환됩니다.

데이터형: double

알고리즘

평균 필터:

ones(n(1),n(2))/(n(1)*n(2))

가우스 필터:

hg(n1,n2)=e(n12+n22)2σ2

h(n1,n2)=hg(n1,n2)n1n2hg

라플라시안 필터:

2=2x2+2y2

2=4(α+1)[α41α4α41α411α4α41α4α4]

LoG(가우스-라플라시안) 필터:

hg(n1,n2)=e(n12+n22)2σ2

h(n1,n2)=(n12+n222σ2)hg(n1,n2)σ4n1n2hg

참고로, fspecial은 동질 영역에 대한 컨벌루션 결과가 항상 0이 되도록 커널의 모든 요소의 합이 0(라플라스 커널과 유사)이 되도록 수식을 변형합니다.

모션 필터:

  1. h의 중앙 계수를 중심으로 하고, 인수 lentheta로 지정된 길이와 각도를 갖는 이상적인 선분을 생성합니다.

  2. 각 계수 위치 (i,j)에 대해, 해당 위치와 이상적인 선분 간의 최근접 거리를 계산합니다.

  3. h = max(1 - nearest_distance,0);

  4. h를 정규화합니다(h = h/(sum(h(:)))).

확장 기능

버전 내역

R2006a 이전에 개발됨