我有一个以 double 表示的 rgb 图像矩阵(高*宽*3)。 在对矩阵进行一些操作之后,一些值变得大于 1 或小于 0。 我需要将这些值归一化为 1 和 0。 谢谢。
最佳答案
好吧,只需使用按条件索引即可。假设您的矩阵称为 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] 并且不需要归一化。
关于matlab - matlab中的归一化矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111339/