需要解释 matlab 表达式

Need explanation of a matlab expression

本文关键字:表达式 matlab 解释      更新时间:2023-10-16

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

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

输入图像,最小值和最大值是图像最小和最大灰度级别。Bin 会成为一个数组吗?它应该包含什么?与LUT或图像相同的尺寸是什么?"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))将返回:

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 矩阵/向量)中使用零/负索引。