2016-11-18 35 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。

小心谨慎下采样!您可能首先应用高斯模糊来确保将所有数据都考虑在内。

相关问题