В этом примере показано, как создать набор GLCM и извлечь из них статистику. В примере также показано, как статистика, возвращаемая серыми копирами, имеет прямое отношение к исходному входному изображению.
Чтение изображения в рабочую область и его отображение. Пример преобразует изображение в оттенках серого, а затем поворачивает его на 90 градусов.
circuitBoard = rot90(rgb2gray(imread('board.tif')));
imshow(circuitBoard)
Определите смещения с изменяющимся направлением и расстоянием. Поскольку изображение содержит объекты различных форм и размеров, расположенные в горизонтальном и вертикальном направлениях, в примере задается набор горизонтальных смещений, которые изменяются только по расстоянию.
offsets0 = [zeros(40,1) (1:40)'];
Создайте модули GLCM. Позвоните в graycomatrix функция, задающая смещения.
glcms = graycomatrix(circuitBoard,'Offset',offsets0);Получение статистики из GLCM с помощью graycoprops функция. В примере вычисляются контраст и корреляция.
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. При тщательном изучении входного изображения можно увидеть, что некоторые вертикальные элементы изображения имеют периодический шаблон, повторяющийся через каждые семь пикселей.