주요 콘텐츠

imboxfilt

영상에 대한 2차원 상자 필터링

설명

B = imboxfilt(A)는 2차원의 3×3 상자 필터를 사용하여 영상 A를 필터링합니다. 상자 필터는 평균 필터라고도 합니다.

예제

B = imboxfilt(A,filterSize)filterSize로 지정된 크기를 갖는 2차원 상자 필터로 영상 A를 필터링합니다.

예제

B = imboxfilt(___,Name=Value)는 이름-값 쌍 인수를 사용하여 필터링의 특성을 제어합니다.

예제

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다.

A = imread("cameraman.tif");

11×11 필터를 사용하여 평균 필터링을 수행합니다.

localMean = imboxfilt(A,11);

원본 영상과 필터링된 영상을 나란히 표시합니다.

imshowpair(A,localMean,"montage")

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

영상을 작업 공간으로 읽어 들입니다.

A = imread('cameraman.tif');

정수 오버플로를 방지하기 위해 영상의 데이터형을 double로 변경합니다.

A = double(A);

15×15 상자 필터를 사용하여 국소 영역 합계를 계산하고 영상을 필터링합니다. 국소 영역의 평균값이 아닌 합계를 계산하기 위해 NormalizationFactor 파라미터를 1로 설정합니다.

localSums = imboxfilt(A, 15, 'NormalizationFactor',1);

원본 영상과 필터링된 영상을 나란히 표시합니다.

imshowpair(A,localSums,'montage')

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

입력 인수

모두 축소

필터링할 영상으로, 임의의 차원의 숫자형 배열로 지정됩니다. 입력 영상이 3차원 이상이면(ndims(I)>2)(예: RGB 영상) imboxfilt가 더 높은 차원을 따라 모든 2차원 평면에 대해 상자 필터링을 수행합니다.

AInfs 또는 NaNs 값이 있는 경우에는 imboxfilt의 동작이 정의되지 않습니다. 이 문제는 적분 영상에 기반한 필터링이 사용된 경우 발생할 수 있습니다. 출력값에서 InfsNaNs의 전파를 제한하려면, 대신 imfilter를 사용해 보십시오.

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

상자 필터의 크기로, 양의 홀수 정수 또는 양의 홀수 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. filterSize가 스칼라이면 상자 필터는 정사각 필터입니다.

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

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: B = imboxfilt(A,5,Padding="circular")는 채우기 패턴을 "circular"로 지정합니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: B = imboxfilt(A,5,"Padding","circular");

채우기 패턴으로, 다음 값 중 하나 또는 숫자형 스칼라로 지정됩니다. 스칼라 값을 지정할 경우, 영상의 경계 밖에 있는 입력 영상 픽셀은 묵시적으로 그 스칼라 값을 갖는 것으로 간주됩니다.

설명
"circular"영상의 경계 밖에 있는 입력 영상 값이 묵시적으로 입력 영상이 주기적이라고 간주하여 계산됩니다.
"replicate"영상의 경계 밖에 있는 입력 영상 값이 가장 가까운 영상 테두리 값과 같은 것으로 간주됩니다.
"symmetric"영상의 경계 밖에 있는 입력 영상 값이 배열 테두리를 기준으로 배열을 대칭 복사하여 계산됩니다.

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

상자 필터에 적용되는 정규화 인자로, 숫자형 스칼라로 지정됩니다.

NormalizationFactor의 디폴트 값은 filterSize에 따라 달라집니다. filterSize가 스칼라인 경우 디폴트 값은 1/filterSize.^2입니다. filterSize가 요소를 2개 가진 벡터인 경우 디폴트 값은 1/prod(filterSize)입니다.

디폴트 NormalizationFactor는 평균 필터와 같은 효과를 냅니다. 즉, 출력 영상의 픽셀은 filterSize에 의해 결정된 이웃 영상의 국소 평균값입니다. 국소 영역 합계를 구하려면 NormalizationFactor1로 설정하십시오. 이러한 상황에서 오버플로를 방지하려면 입력 영상을 double형 클래스로 변환하여 배정밀도 영상을 사용해 보십시오.

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

출력 인수

모두 축소

필터링된 영상으로, 입력 영상 A와 크기가 같은 숫자형 배열로 반환됩니다.

알고리즘

imboxfilt는 컨벌루션 기반 필터링 또는 적분 영상 필터링을 사용하여 필터링을 수행하며, 내부 발견법(Heuristic)을 기반으로 어느 필터링 방식을 사용할지 결정합니다.

확장 기능

모두 확장

버전 내역

R2015b에 개발됨

모두 확장