Main Content

ordfilt2

2차원 순서-통계량 필터링

설명

예제

B = ordfilt2(A,order,domain)A의 각 요소를 domain의 0이 아닌 요소로 지정된 이웃을 정렬한 집합의 order번째 요소로 대체합니다.

B = ordfilt2(A,order,domain,S)ordfilt2domain의 0이 아닌 요소에 대응하는 S 값을 가산 오프셋으로 사용하여 A를 필터링합니다. 이 구문을 사용하여, 회색조 팽창과 침식 등 회색조 모폴로지 연산을 구현할 수 있습니다.

B = ordfilt2(___,padopt)ordfilt2가 어떤 방법으로 행렬 경계를 채울지 지정한 padopt를 사용하여 A를 필터링합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들인 후 표시합니다.

A = imread('snowflakes.png');
figure
imshow(A)

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

영상을 필터링하고 결과를 표시합니다.

B = ordfilt2(A,25,true(5));
figure
imshow(B)

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

입력 인수

모두 축소

필터링할 데이터로, 2차원 숫자형 행렬 또는 2차원 논리형 행렬로 지정됩니다.

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

대상 픽셀을 대체할 요소로, 실수형 정수 스칼라로 지정됩니다.

데이터형: double

이웃으로, 10을 포함하는 숫자형 행렬 또는 논리형 행렬로 지정됩니다. domain은 이진 영상 연산에 사용되는 구조 요소와 동일합니다. 값이 1인 요소는 필터링 연산에서 이웃을 정의합니다. 다음 표에는 일반적인 필터의 예가 나와 있습니다.

필터링 연산의 유형MATLAB 코드이웃선택된 요소를 나타내는 샘플 영상 데이터
중앙값 필터B = ordfilt2(A,5,ones(3,3))3-by-3 matrix of ones3-by-3 matrix of numbers. The element with the fifth highest value in the neighborhood is circled.
최솟값 필터B = ordfilt2(A,1,ones(3,3))3-by-3 matrix of ones3-by-3 matrix of numbers. The element with the lowest value in the neighborhood is circled.
최댓값 필터B = ordfilt2(A,9,ones(3,3))3-by-3 matrix of ones3-by-3 matrix of numbers. The element with the highest value in the neighborhood is circled.
북쪽, 동쪽, 남쪽, 서쪽 이웃의 최소값B = ordfilt2(A,1,[0 1 0; 1 0 1; 0 1 0])3-by-3 neightborhood in which the north, south, east, and west pixels are true (1) and the center and corner pixels are false (0)3-by-3 matrix of numbers. The element with the lowest value in the specified neighborhood is circled. Elements excluded from the neighborhood are grayed out.

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

가산 오프셋으로, domain과 크기가 같은 숫자형 행렬로 지정됩니다.

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

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

옵션설명
'zeros'0으로 배열 경계를 채웁니다.
'symmetric'

배열 자체를 대칭 복사하여 배열을 채웁니다.

데이터형: char | string

출력 인수

모두 축소

필터링된 데이터로, 입력 데이터 A와 동일한 클래스의 2차원 숫자형 행렬 또는 2차원 논리형 행렬로 반환됩니다.

  • 값이 0인 요소가 포함되지 않은 대규모 영역 행렬을 사용하는 경우, A가 정수 데이터 형식(uint8형, int8형, uint16형, int16형)일 때 ordfilt2가 더 나은 성능을 보일 수 있습니다. 16비트 데이터형보다 uint8형과 int8형에서 속도 향상이 더 큽니다. 8비트 데이터 형식의 경우 영역 행렬은 7개 이상의 행을 포함해야 합니다. 16비트 데이터 형식의 경우 영역 행렬은 3개 이상의 행과 520개 이상의 요소를 포함해야 합니다.

참고 문헌

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992.

[2] Huang, T.S., G.J.Yang, and G.Y.Tang. "A fast two-dimensional median filtering algorithm.", IEEE transactions on Acoustics, Speech and Signal Processing, Vol ASSP 27, No. 1, February 1979

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목