需要解释matlab表达式

时间:2015-01-20 13:54:27

标签: c++ matlab

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分: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矩阵/向量,就此而言)。