我有一个以双打表示的rgb图像矩阵(高度*宽度* 3)。 在对矩阵进行一些操作之后,一些值变为2,然后是1或更小,然后是0。 我需要将那些valuse归一化为1和0。 感谢。
答案 0 :(得分:6)
好吧,只需按条件使用索引即可。假设您的矩阵称为M. 如果您只想将值设置为大于1到1且小于0,请使用:
M(M > 1) = 1;
M(M < 0) = 0;
但是,如果要按比例将所有值标准化为区间[0; 1],那么你必须做类似的事情:
mmin = min(M(:));
mmax = max(M(:));
M = (M-mmin) ./ (mmax-mmin); % first subtract mmin to have [0; (mmax-mmin)], then normalize by highest value
当矩阵M已经在[0;区间]时,你必须考虑这种情况。 1]并且不需要归一化。
答案 1 :(得分:0)
如果您只想查看可以使用的图像
imagesc(M);
它负责范围本身。
如果您想手动更改值并完全控制它,
M = M ./ max(M(:));
如果你只有正值,那么就会成功。 要获得完整的对比度图像,您可能需要:
m = m - min(m(:));
m = m ./ max(m(:));