Main Content

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

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

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

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

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

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")

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

참고 항목

관련 항목