Выведите статистику из GLCM и постройте корреляцию

В этом примере показано, как создать набор Матриц Совместной встречаемости Уровня серого (GLCMs) и вывести статистику от них. Пример также иллюстрирует как статистика, возвращенная graycoprops имейте непосредственную связь к исходному входному изображению.

Считайте изображение в рабочую область и отобразите ее. Пример преобразует изображение истинного цвета в полутоновое изображение и затем для этого примера, вращает его 90 градусов.

circuitBoard = rot90(rgb2gray(imread('board.tif')));
imshow(circuitBoard)

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

Задайте смещения различного направления и расстояния. Поскольку изображение содержит объекты множества форм и размеров, которые располагаются в горизонтальных и вертикальных направлениях, пример задает набор горизонтальных смещений, которые только варьируются по расстоянию.

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

Создайте GLCMs. Вызовите 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')

Figure contains an axes object. The axes object with title Texture Correlation as a function of offset contains an object of type line.

График содержит peaks при смещениях 7, 15, 23, и 30. Если вы исследуете входное изображение тесно, вы видите, что определенные вертикальные элементы в изображении имеют периодический шаблон, который повторяет каждые семь пикселей.