Main Content

entropyfilt

회색조 영상의 국소 엔트로피

설명

예제

J = entropyfilt(I)는 배열 J를 반환합니다. 여기서 각각의 출력 픽셀은 입력 영상 I의 각 픽셀 주변의 9×9 이웃에서의 엔트로피 값을 포함합니다.

I의 테두리에 있는 픽셀의 경우 entropyfilt는 대칭 채우기를 사용합니다. 대칭 채우기에서 채우기 픽셀의 값은 I의 테두리 픽셀을 대칭 복사한 것입니다.

J = entropyfilt(I,nhood)는 이웃 nhood를 사용하여 입력 영상 I의 엔트로피 필터링을 수행합니다.

예제

모두 축소

이 예제에서는 entropyfilt를 사용하여 엔트로피 필터링을 수행하는 방법을 보여줍니다. 필터링된 영상에서 더 밝은 픽셀은 원래 영상에서 엔트로피가 더 높은 이웃에 해당합니다.

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

I = imread('circuit.tif');

entropyfilt를 사용하여 엔트로피 필터링을 수행합니다.

J = entropyfilt(I);

원래 영상과 처리된 영상을 표시합니다.

imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(J,[])
title('Result of Entropy Filtering')

Figure contains an axes object. The axes object with title Result of Entropy Filtering contains an object of type image.

입력 인수

모두 축소

필터링할 영상으로, 임의의 차원의 숫자형 배열로 지정됩니다. 입력 영상이 3차원 이상이면(ndims(I) > 2)(예: RGB 영상) entropyfilt가 더 높은 차원을 따라 모든 2차원 평면을 필터링합니다. 데이터형이 doublesingle인 경우 I의 명암 값은 [0, 1] 범위 내에 있어야 합니다.

데이터형: double | uint8 | uint16 | uint32 | logical

이웃으로, 01을 포함하는 숫자형 배열 또는 논리형 배열로 지정됩니다. nhood의 크기는 각 차원에서 홀수여야 합니다.

기본적으로, entropyfilt는 이웃 true(9)를 사용합니다. 이웃의 중앙 요소는 floor((size(nhood) + 1)/2)입니다.

다른 모양(예: 원판)의 이웃을 지정하려면 strel 함수를 사용하여 원하는 형태의 구조 요소 객체를 만드십시오. 그런 다음 구조 요소 객체의 neighborhood 속성에서 이웃을 추출합니다.

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

출력 인수

모두 축소

필터링된 영상으로, 입력 영상 I와 크기가 같은 숫자형 배열로 반환됩니다. J의 데이터형은 double입니다. 입력 영상 I가 이진 영상(logical형)인 경우, J 값은 [0, 1] 범위 내에 있습니다. I의 그 외 모든 데이터형의 경우 J 값은 [0, 8] 범위 내에 있습니다.

데이터형: double

세부 정보

모두 축소

엔트로피

엔트로피는 입력 영상의 텍스처 특성을 나타내는 데 사용할 수 있는, 임의성에 대한 통계적 측정값입니다.

엔트로피는 -sum(p.*log2(p))로 정의되는데, 여기서 pimhist에서 반환된 정규화 히스토그램 도수를 포함합니다.

  • 기본적으로 entropyfilt는 논리형 배열에서는 두 개 Bin을 사용합니다. entropyfilt는 픽셀 값이 이산 값이 되고 Bin 값에 바로 일치하도록 히스토그램 도수 계산에서 다른 클래스를 uint8형으로 변환하고 256개 Bin을 사용합니다.

  • 입력 영상 I가 회색조 영상인 경우, J의 값은 일부 Image Processing Toolbox™ 함수에서 double형 영상에 필요로 하는 [0, 1] 범위를 초과할 수 있습니다. J를 이러한 함수에 대한 입력 인수로 전달하려면, rescale 함수를 사용하여 J의 값을 [0, 1] 범위로 다시 스케일링합니다.

참고 문헌

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins. Digital Image Processing Using MATLAB. New Jersey, Prentice Hall, 2003, Chapter 11.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장