주요 콘텐츠

GLCM에서 통계량을 도출하고 상관 플로팅하기

이 예제에서는 GLCM(명암도 동시발생 행렬)의 집합을 만들고 이로부터 통계량을 도출하는 방법을 보여줍니다. 이 예제는 graycoprops에서 반환된 통계량이 원래 입력 영상과 어떠한 직접적 관계를 갖는지도 보여줍니다.

영상을 작업 공간으로 읽어 들인 후 이를 표시합니다. 이 예제에서는 트루컬러 영상을 회색조 영상으로 변환한 다음 90도 회전시킵니다.

circuitBoard = rot90(im2gray(imread("board.tif")));
imshow(circuitBoard)

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

다양한 방향과 거리의 오프셋을 정의합니다. 영상에는 다양한 모양과 크기의 객체들이 가로와 세로 방향으로 배치되어 있습니다. 따라서 이 예제에서는 거리를 변화시키는 오프셋 집합만 지정합니다.

offsets0 = [zeros(40,1) (1:40)'];

GLCM을 만듭니다. 해당 오프셋을 지정하여 graycomatrix 함수를 호출합니다.

glcms = graycomatrix(circuitBoard,"Offset",offsets0);

graycoprops 함수를 사용하여 GLCM에서 통계량을 도출합니다. 이 예제는 대비와 상관을 계산합니다.

stats = graycoprops(glcms,["Contrast" "Correlation"]);

상관을 오프셋의 함수로 플로팅합니다.

figure, plot([stats.Correlation]);
title("Texture Correlation as a function of offset");
xlabel("Horizontal Offset")
ylabel("Correlation")

Figure contains an axes object. The axes object with title Texture Correlation as a function of offset, xlabel Horizontal Offset, ylabel Correlation contains an object of type line.

플롯을 보면 오프셋 7, 15, 23, 30에서 피크가 있습니다. 입력 영상을 자세히 살펴보면 영상에서 특정 세로 요소가 7픽셀마다 반복되는 주기적인 패턴이 있음을 알 수 있습니다.

참고 항목

도움말 항목