В этом примере показано, как создать набор GLCM и извлечь из них статистику. Пример также иллюстрирует, как статистика, возвращаемая серыми культурами, имеет прямое отношение к исходному входному изображению.
Прочтите изображение в рабочую область и отобразите его. Пример преобразует изображение труколора в полутоновое изображение, а затем, в данном примере, поворачивает его на 90 степени.
circuitBoard = rot90(rgb2gray(imread('board.tif')));
imshow(circuitBoard)
Задайте смещения переменного направления и расстояния. Поскольку изображение содержит объекты различных форм и размеров, которые расположены в горизонтальном и вертикальном направлениях, пример задает набор горизонтальных смещений, которые варьируются только на расстоянии.
offsets0 = [zeros(40,1) (1:40)'];
Создайте блоки GLCM. Вызовите graycomatrix
функция, задающая смещения.
glcms = graycomatrix(circuitBoard,'Offset',offsets0);
Выведите статистику из GLCMs используя graycoprops
функция. Пример вычисляет контрастность и корреляцию.
stats = graycoprops(glcms,'Contrast Correlation');
Постройте корреляцию как функцию от смещения.
figure, plot([stats.Correlation]); title('Texture Correlation as a function of offset'); xlabel('Horizontal Offset') ylabel('Correlation')
График содержит peaks на смещениях 7, 15, 23 и 30. Если вы внимательно исследуете вход изображение, можно увидеть, что определенные вертикальные элементы на изображении имеют периодический шаблон, который повторяется каждые семь пикселей.