1 回答

TA貢獻2003條經驗 獲得超2個贊
我能夠按如下方式重現您的問題:
import numpy as np
from skimage.transform import resize, rescale
image = np.random.random((512, 512, 3))
resized = resize(image, (256, 256))
rescaled2x = rescale(
rescale(resized, 0.5),
2,
)
print(rescaled2x.shape)
# prints (256, 256, 4)
問題是resize可以推斷你的最終維度是通道/RGB,因為你給它一個 2D 形狀。rescale,另一方面,將您的數組視為形狀為 (256, 256, 3) 的 3D 圖像,它下降到 (128, 128, 2),也沿著顏色進行插值,就好像它們是另一個空間維度一樣,然后上采樣到 (256, 256, 4)。
如果您查看rescale文檔,您會發現“多通道”參數,描述為:
圖像的最后一個軸是被解釋為多通道還是另一個空間維度。
所以,更新我的代碼:
rescaled2x = rescale(
rescale(resized, 0.5, multichannel=True),
2,
multichannel=True,
)
print(rescaled2x.shape)
# prints (256, 256, 3)
添加回答
舉報