scipy.ndimage.interpolation.zoom

参考:https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.ndimage.interpolation.zoom.html

功能是缩放数组,即使用order顺序的样条插值来缩放数组。

scipy.ndimage.interpolation.zoom(inputzoomoutput=Noneorder=3mode='constant'cval=0.0prefilter=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。

该函数返回值为一个缩放过的矩阵。 如果输出作为参数给出,则返回None。

猜你喜欢

转载自blog.csdn.net/sinat_39372048/article/details/81219989