Нужно объяснение выражения Matlab

0

Может ли кто-нибудь объяснить последнюю строку этого выражения MatLab? Мне нужно преобразовать это в C++, и у меня нет никакого опыта в синтаксисе Matlab.

  LUT = zeros(fix(Max - Min),1);
  Bin= 1+LUT(round(Image));

Изображение представляет собой входное изображение, Min и Max - минимальный и максимальный уровни изображения. Будет ли Бин быть массивом? Что он будет содержать? Каковы размеры, такие же, как LUT или Image? Что означает "1" (добавить 1 к каждому элементу массива или сдвинуть позиции массива? Я не могу найти ни одного примера этого.

Заранее спасибо.

  • 0
    Является ли Image матричным представлением изображения или самого изображения?
  • 0
    Почему бы не попробовать это? Вставьте примеры значений для этих чисел, и посмотрите, что получится на другом конце?
Теги:

1 ответ

1
Лучший ответ

LUT - это вектор столбца, который имеет число записей, равное разности максимальных и минимальных интенсивностей в вашем изображении. LUT(round(Image)) извлекает записи в вашем векторном LUT которые задаются командным round(Image). Размерность Bin будет равна размеру вашего матричного Image, а записи будут соответствовать соответствующим индексам из вектора LUT. Итак, скажем, у вас есть матричное Image 3x3, округленные значения которого следующие:

1 2 3
2 2 4
1 5 1

Тогда LUT(round(Image)) вернется:

LUT(1) LUT(2) LUT(3)
LUT(2) LUT(2) LUT(4)
LUT(1) LUT(5) LUT(1)

И 1+LUT(round(Image)) вернется:

1+LUT(1) 1+LUT(2) 1+LUT(3)
1+LUT(2) 1+LUT(2) 1+LUT(4)
1+LUT(1) 1+LUT(5) 1+LUT(1)

Обратите внимание, что это работает только в том случае, если все записи в round(Image) положительны, потому что вы не можете использовать нулевую/отрицательную индексацию в векторе LUT (или любую матрицу/вектор MATLAB, если на то пошло).

  • 0
    Благодарю. Вы все прояснили.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню