1
如何使用非整數步驟修改numpy數組的大小?也就是: 要將尺寸爲(64,64,64)的3D陣列轉換爲尺寸爲(55,100,60)的3D陣列,插值或使用類似kron函數的東西在numpy中使用小數步驟調整大小
如何使用非整數步驟修改numpy數組的大小?也就是: 要將尺寸爲(64,64,64)的3D陣列轉換爲尺寸爲(55,100,60)的3D陣列,插值或使用類似kron函數的東西在numpy中使用小數步驟調整大小
您想如何插?
沒有「最佳」,「正確」或「正常」的方式來插入數據......這一切都取決於你的問題。
有很多不同的方式來做你想做的。
起點爲scipy.ndimage.zoom
,它可以使用樣條曲線,線性或最近鄰居插值,並且完全按照您的要求進行。
指定order=0
將給出最近鄰插值,order=1
將給出線性插值,而大於1的任何值都會給出樣條插值的指定順序。 (默認爲order=3
,這是「三次樣條」插值)。
在你的情況,這將是:
new = zoom(data, (55/64.0, 100/64.0, 60/64.0), order=typeofinterpolationyouwant)
您還需要考慮你希望如何處理邊界。默認情況下,將原始數組之外的任何值都視爲0.使用樣條插值,這通常會導致陣列邊緣附近產生較強的僞像。
非常感謝。這正是我所尋找的,我沒有找到......我需要不同的插值或過濾器,這取決於具體情況,但我認爲這個功能對我來說是完美的。 – 2012-04-04 06:16:52