Main Content

medfilt3

3차원 중앙값 필터 적용

설명

예제

B = medfilt3(A)는 3차원 영상 A를 3×3×3 필터로 필터링합니다. 기본적으로 medfilt3은 테두리에서 대칭으로 값을 복제하여 영상의 테두리를 채웁니다.

B = medfilt3(A,[m n p])는 3차원에서 3차원 영상 A의 중앙값 필터링을 수행합니다. B의 각 출력 복셀은 A의 해당 복셀 주변에 있는 m×n×p 이웃에서의 중앙값을 포함합니다.

B = medfilt3(___,padopt)medfilt3이 배열의 경계를 채우는 방법을 제어합니다.

예제

모두 축소

잡음이 있는 3차원 곡면을 만듭니다.

[x,y,z,V] = flow(50);
noisyV = V + 0.1*double(rand(size(V))>0.95) - 0.1*double(rand(size(V))<0.05);

중앙값 필터링을 적용합니다.

filteredV = medfilt3(noisyV);

잡음이 있는 표면과 필터링된 표면을 함께 표시합니다.

subplot(1,2,1)
hpatch1 = patch(isosurface(x,y,z,noisyV,0));
isonormals(x,y,z,noisyV,hpatch1)
set(hpatch1,'FaceColor','red','EdgeColor','none')
daspect([1,4,4])
view([-65,20]) 
axis tight off
camlight left
lighting phong

subplot(1,2,2)
hpatch2 = patch(isosurface(x,y,z,filteredV,0));
isonormals(x,y,z,filteredV,hpatch2)
set(hpatch2,'FaceColor','red','EdgeColor','none')
daspect([1,4,4])
view([-65,20])
axis tight off
camlight left 
lighting phong

입력 인수

모두 축소

입력 영상으로, 3차원 숫자형 또는 논리형 배열로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

이웃 크기로, 양의 홀수 정수로 구성된 요소를 3개 가진 벡터로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

채우기 옵션으로, 다음 값 중 하나로 지정됩니다.

설명
"symmetric"배열 자체를 대칭 복사하여 배열을 채웁니다.
"replicate"테두리 요소를 반복하여 배열을 채웁니다.
"zeros"0으로 배열을 채웁니다.

데이터형: char | string

출력 인수

모두 축소

출력 영상으로, 입력 영상 A와 크기 및 데이터형이 같은 3차원 숫자형 배열로 반환됩니다.

확장 기능

버전 내역

R2016b에 개발됨

모두 확장

참고 항목