需要一个matlab表达式的解释

Need explanation of a matlab expression

谁能解释一下这个 MatLab 表达式的最后一行?我需要将其转换为 C++,但我对 matlab 语法没有任何经验。

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

Image为输入图像,Min和Max为图像最小和最大灰度级。 Bin 会是一个数组吗?它应该包含什么?与 LUT 或 Image 相同的尺寸是多少? '1' 代表什么(为数组的每个成员加 1 或数组位置的移位?我找不到任何这样的例子。

提前致谢。

LUT 是一个列向量,其条目数等于图像中最大和最小强度的差值。 LUT(round(Image)) 检索向量 LUT 中的条目,这些条目由命令 round(Image) 给出。 Bin 的维度将等于矩阵的大小 Image,并且条目将等于 LUT 向量中的相应索引。因此,假设您有一个 3x3 矩阵 Image,其舍入值如下:

1 2 3
2 2 4
1 5 1

然后LUT(round(Image))将return:

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

1+LUT(round(Image))将return:

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) 中的 all 条目为正时才有效,因为您不能在 LUT 中使用 zero/negative 索引] 向量(或任何 MATLAB matrix/vector,就此而言)。