为什么归一化前转置,归一化后也要转置?

发布时间:2019-08-01 01:01:32

为什么归一化前转置,归一化后也要转置?

推荐回答

归一化就是通过一系列变换(即利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响),将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。

基于矩的图像归一化技术基本工作原理为:首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个标准形式的图像(该图像与仿射变换无关)。 一般说来,基于矩的图像归一化过程包括4个步骤,即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。

图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。

当需要把归一的数据还原时,可以用以下命令:

x1_again = mapminmax('reverse',y1,PS) 

1> 默认的map范围是[-1, 1],所以如果需要[0, 1],则按这样的格式提供参数:  MappedData = mapminmax(OriginalData, 0, 1);2> 只按行归一化,如果是矩阵,则每行各自归一化;3> 如果需要对整个矩阵归一化,

用如下方法:  FlattenedData = OriginalData(:)'; % 展开矩阵为一列,然后转置为一行。  MappedFlattened = mapminmax(FlattenedData, 0, 1); % 归一化。  MappedData = reshape(MappedFlattened, size(OriginalData)); % 还原为原始矩阵形式。

此处不需转置回去,因为reshape恰好是按列重新排序

以上问题属网友观点,不代表本站立场,仅供参考!