参考:https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.ndimage.interpolation.zoom.html
功能是缩放数组,即使用order顺序的样条插值来缩放数组。
scipy.ndimage.interpolation.zoom(input, zoom, output=None, order=3, mode='constant', cval=0.0, prefilter=True)[source]
Zoom an array.
input:输入数组
zoom:类型为float或sequence,沿轴的缩放系数。 如果float,每个轴的缩放是相同的。 如果sequence,zoom应包含每个轴的一个值。
output:放置输出的数组,或返回数组的dtype
order:样条插值的顺序,默认为3.顺序必须在0-5范围内。
输入为 array([[0., 1., 2.],
[1., 2., 3.],
[2., 3., 4.]], dtype=float32))
当order=3时,使用三次插值重新采样2倍:
输出为:array([[0.6666667, 0.8053333, 1.136 , 1.5306667, 1.8613334, 2. ],
[0.8053333, 0.944 , 1.2746667, 1.6693333, 2. , 2.1386666],
[1.136 , 1.2746667, 1.6053333, 2. , 2.3306668, 2.4693334],
[1.5306667, 1.6693333, 2. , 2.3946667, 2.7253335, 2.864 ],
[1.8613334, 2. , 2.3306668, 2.7253335, 3.056 , 3.1946666],
[2. , 2.1386666, 2.4693334, 2.864 , 3.1946666, 3.3333333]],
dtype=float32))
当order=0时,使用最近插值重新采样2倍:
输出为:array([[0., 0., 1., 1., 2., 2.],
[0., 0., 1., 1., 2., 2.],
[1., 1., 2., 2., 3., 3.],
[1., 1., 2., 2., 3., 3.],
[2., 2., 3., 3., 4., 4.],
[2., 2., 3., 3., 4., 4.]], dtype=float32))
当order=1时,用双线性插值重新采样2倍:
输出为:array([[0. , 0.4, 0.8, 1.2, 1.6, 2. ],
[0.4, 0.8, 1.2, 1.6, 2. , 2.4],
[0.8, 1.2, 1.6, 2. , 2.4, 2.8],
[1.2, 1.6, 2. , 2.4, 2.8, 3.2],
[1.6, 2. , 2.4, 2.8, 3.2, 3.6],
[2. , 2.4, 2.8, 3.2, 3.6, 4. ]], dtype=float32))
当order=2时:
输出为:array([[0.5 , 0.66, 1.05, 1.45, 1.84, 2. ],
[0.66, 0.82, 1.21, 1.61, 2. , 2.16],
[1.05, 1.21, 1.6 , 2. , 2.39, 2.55],
[1.45, 1.61, 2. , 2.4 , 2.79, 2.95],
[1.84, 2. , 2.39, 2.79, 3.18, 3.34],
[2. , 2.16, 2.55, 2.95, 3.34, 3.5 ]], dtype=float32))
当order=4时:
输出为: array([[0.8125 , 0.9282333, 1.2255833, 1.5869167, 1.8842666, 2. ],
[0.9282333, 1.0439667, 1.3413167, 1.70265 , 2. , 2.1157334],
[1.2255833, 1.3413167, 1.6386666, 2. , 2.29735 , 2.4130833],
[1.5869167, 1.70265 , 2. , 2.3613334, 2.6586833, 2.7744167],
[1.8842666, 2. , 2.29735 , 2.6586833, 2.9560332, 3.0717666],
[2. , 2.1157334, 2.4130833, 2.7744167, 3.0717666, 3.1875 ]],
dtype=float32))
当order=5时:
输出为:array([[0.93333334, 1.0360746 , 1.302656 , 1.6306773 , 1.8972586 ,
2. ],
[1.0360746 , 1.138816 , 1.4053973 , 1.7334187 , 2. ,
2.1027412 ],
[1.302656 , 1.4053973 , 1.6719787 , 2. , 2.2665813 ,
2.3693228 ],
[1.6306773 , 1.7334187 , 2. , 2.3280213 , 2.5946026 ,
2.697344 ],
[1.8972586 , 2. , 2.2665813 , 2.5946026 , 2.861184 ,
2.9639254 ],
[2. , 2.1027412 , 2.3693228 , 2.697344 , 2.9639254 ,
3.0666666 ]], dtype=float32))
mode:根据给定的模式('常数','最近','反映'或'换行')填充输入边界之外的点。 默认为“常量”。
cval:如果mode ='constant',则用于输入边界之外的点的值。 默认值为0.0
prefilter : bool, optional 。参数预滤波器确定输入是否在插值之前使用spline_filter进行预过滤(对于> 1的样条插值所必需的)。 如果为False,则假定输入已被过滤。 默认为True。