2016-11-18 75 views
0

還有一個功能,我得到了以下信息,而調用這個函數關於廣播輸入數組的適當的方式從一個形狀變成另一種形狀

的功能是調整一個給定的圖像集,並把轉換後的人成新套imgs_p

例如,輸入imgs的形狀爲(5635,1,420,580)。我想將其轉換爲(5635,64,80,1)。這是我做了如下,但我得到的錯誤信息爲ValueError: could not broadcast input array from shape (80,64) into shape (80,1) 如何解決這個問題?謝謝。

def preprocess(imgs): 
    imgs_p = np.ndarray((imgs.shape[0],img_rows, img_cols,imgs.shape[1]), dtype=np.uint8) 
    print('imgs_p: ',imgs_p.shape) 
for i in range(imgs.shape[0]): 
    print('imgs[i,0]: ',imgs[i,0].shape) 
    imgs_p[i,0]=resize(imgs[i,0],(img_rows,img_cols)) 
return imgs_p 

回答

0

我想你想滾動「1」的層面的正確位置:

z = np.moveaxis(z, 1, -1).shape 

此後你可以運行一個for循環在每個圖像和重塑,或者使用skimage或SciPy的。 ndimage。

小心謹慎下采樣!您可能首先應用高斯模糊來確保將所有數據都考慮在內。

相關問題