有人可以解释这个MatLab表达式的最后一行吗?我需要将它转换为C ++,我没有任何matlab语法经验。
LUT = zeros(fix(Max - Min),1);
Bin= 1+LUT(round(Image));
图像是输入图像,Min和Max是图像最小和最大灰度级。 Bin会成为一个阵列吗?它包含什么?什么是尺寸,与LUT或图像相同?什么是' 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矩阵/向量,就此而言)。