2012-04-26 10 views
0

Как указано в theory, матрица glcm имеет размеры 2^x на 2^x, где x - глубина изображения в оттенках серого. Моя проблема в том, что я получаю матрицу 8 на 8 вместо матрицы 2^8 By 2^8, когда я запускаю ее на 8-битном изображении в оттенках серого.не получает размер матрицы glcm для 8-битного изображения в оттенках серого.

Может кто-нибудь, пожалуйста, помогите мне?

ответ

1

Согласно MATLAB документации,

graycomatrix вычисляет GLCM от масштабной версии изображения. По умолчанию, если I является двоичным изображением, серокомбразия масштабирует изображение до двух уровней серого. Если I - изображение интенсивности, серокомматрица масштабирует изображение до восьми уровней серого. Вы можете указать количество уровней серого , используемое для масштабирования изображения с помощью параметра 'NumLevels' , а также того, как серокомматрица масштабирует значения с помощью параметра 'GrayLimits' - см. Параметры.

Короче говоря, вам нужно запустить функцию следующим образом:

glcm = graycomatrix(I , 'NumLevels' , 2^8); 
+0

будет такое масштабирование от 256 NumLevels до 8 NumLevels приводит к потере информации текстуры? – klijo

+0

Этого я не могу вам рассказать. Я просто понимаю, что говорит документация. Интуитивно, вы потеряете * некоторый * контент текстуры, но с вычислительной точки зрения существует компромисс между количеством уровней оттенков серого, которые вы изучаете, и временем, в течение которого ваш алгоритм (независимо от того, что вы используете в этой матрице) будет принимать обрабатывать эту информацию. По этой причине было бы неплохо иметь эту возможность масштабирования. – Phonon

 Смежные вопросы

  • Нет связанных вопросов^_^