exponenta event banner

Деривация статистики из GLCM и корреляция графика

В этом примере показано, как создать набор GLCM и извлечь из них статистику. В примере также показано, как статистика, возвращаемая серыми копирами, имеет прямое отношение к исходному входному изображению.

Чтение изображения в рабочую область и его отображение. Пример преобразует изображение в оттенках серого, а затем поворачивает его на 90 градусов.

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

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

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

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

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

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