0

次の 3D マスク ボリュームLがあります。

print(L.shape)
(170, 256, 256)
print("L: ", np.unique(L))
L: [0 1 2 3 4 5 6 7 8]

ここに画像の説明を入力
ラベル値を同じに保ちながら、マスクを元のサイズにダウンサンプリングしてからアップサンプリングしたいと考えています。
失敗 -> ダウンサンプリング:

from scipy.ndimage.interpolation import zoom
zL = zoom(L, (0.5, 0.5, 0.5), mode='nearest')
print("zL: ", np.unique(zL))
zL:  [-3 -2 -1  0  1  2  3  4  5  6  7  8  9 10]

ここに画像の説明を入力
ラベルの値を変更しています。and allmodeなどの他のオプションを試しました。constantしかし、どれも機能していないようです。

試行の成功 -> ダウンサンプリング: 一方:

dx = 2
dy = 2
dz = 2
if DOWNSAMPLE:
    L_down = L[::dx, ::dy, ::dz]
print("L_down: ", np.unique(L_down))
L_down:  [0 1 2 3 4 5 6 7 8]

ラベルの値を変更せずに動作するようです。

ここに画像の説明を入力
試行失敗 -> アップサンプリング: しかし、元のサイズに戻すとき

zL = zoom(L_down, (2, 2, 2), mode='nearest')

動作しませんでした。また、トリリニア補間などに関するその他の詳細がある場合は、いただければ幸いです。
ありがとう。

4

0 に答える 0