Извлечение текстурных объектов из Матрицы совместного возникновения


Я пытаюсь создать систему поиска изображений на основе контента (CBIR) в MATLAB для цветных изображений и использую алгоритм k-means для извлечения векторов признаков для изображений в моей базе данных. Каждое изображение имеет четыре кластера,и каждый кластер содержит информацию о цвете (R,G,B) и положении (X, Y).

Сейчас я пытаюсь добавить текстурный элемент в мои кластеры, и для этого мне нужно использовать матрицы совпадений серого уровня (GLCM). Я знаю, что GLCM - это всего лишь индикатор вероятности. что Определенный серый уровень появится рядом с другим, и создали GLCM для моих изображений.

Мне неясно, как сопоставить GLCM с исходным изображением (и, следовательно, его кластерами), поскольку GLCM говорит о парах пикселей, и я хотел бы, чтобы каждая позиция X, Y имела текстурную информацию. Как можно перевести GLCM в пиксели?

1 2

1 ответ:

Выход GLCM, по-видимому, представляет собой матрицу T-by-T, где T-число различных уровней оттенков серого на изображении. Поэтому размер этой матрицы на самом деле не зависит от размера вашего изображения. Матрица также описывает текстуру всего изображения, поэтому нет особого смысла связывать данные GLCM с одним пикселем.

Похоже, что вы можете вычислить GLCM для отдельных кластеров, поскольку это будет описывать текстуру внутри этого кластера? Я думаю graycomatrix требует прямоугольного изображения, но вы можете найти ограничивающую рамку для каждого кластера и извлечь GLCM из них отдельно.

Если вы хотите получить более значимую информацию из Матрицы GLCM (то есть что-то, что подходит в качестве "функции"), вы можете использовать graycoprops, которая возвращает 4 сводные статистические данные.