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(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。