概述
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。
图像数据标准化
min-max标准化(Min-Max Normalization)
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 , 1]之间
其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义
Z-score标准化方法
也称为均值归一化(mean normaliztion), 给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1
图像数据标准化实现方法
通过numpy归一化
a = (a-a.min())/(a.max()-a.min())
通过PIL归一化
没有函数
通过opencv归一化
cv2.normalize(img, img, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)
通过skimage归一化
输入和输出的期望强度范围,分别为in_range和out_range,用于拉伸或缩小输入图像的强度范围。输入图像与输出图像的dtype相同。
in_range defaults to ‘image’ and out_range defaults to ‘dtype’。
将[0,255]范围转化为[0, 1.0]
t=t.astype(np.float32)
rescale_intensity(t, in_range=(0, 255), out_range=(0, 1.0))
将[0, 1.0]范围转化为[0, 255]
rescale_intensity(t, in_range=(0, 1.0), out_range=(0, 255))
t=t.astype(np.uint8)
基本原理是先将数据归一化到in_range范围,再将数据归一化到out_range范围;
同时保持输入输出数据类型不变