Может ли кто-нибудь объяснить последнюю строку этого выражения MatLab? Мне нужно преобразовать это в C++, и у меня нет никакого опыта в синтаксисе Matlab.
LUT = zeros(fix(Max - Min),1);
Bin= 1+LUT(round(Image));
Изображение представляет собой входное изображение, Min и Max - минимальный и максимальный уровни изображения. Будет ли Бин быть массивом? Что он будет содержать? Каковы размеры, такие же, как LUT или Image? Что означает "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, если на то пошло).
Image
матричным представлением изображения или самого изображения?