将多个大小为(22,62840)的3D阵列保存为图像



我正在生成多个大小(22,62840(的3D numpy数组,每个数组包含22个大小(62840(的数组。现在我想将这个数组(22,6284(保存为图像。我不知道我能不能做到。我试着用plt.savefig来做这件事,但没有成功。两个多星期以来,我一直在努力寻找如何做到这一点。如有任何帮助,我们将不胜感激。

signals=np.zeros((22,6,2840))
t=0
movement=int(S*256)
if(S==0):
movement=_SIZE_WINDOW_SPECTOGRAM        
while data.shape[1]-(t*movement+_SIZE_WINDOW_SPECTOGRAM) > 0:
for i in range(0, 22):
start = t*movement
stop = start+_SIZE_WINDOW_SPECTOGRAM
signals[i,:]=wavelet(data[i,start:stop])
if(signalsBlock is None):
signalsBlock=np.array([signals])
else:
signalsBlock=np.append(signalsBlock, [signals], axis=0)
nSpectogram=nSpectogram+1
if(signalsBlock.shape[0]==50):
saveSignalsOnDisk(signalsBlock, nSpectogram)
signalsBlock=None

t = t+1

尝试使用PyPNG库。您必须将数组重塑为二维格式,然后将其写成png。到图书馆的链接在这里

image_2d = numpy.reshape(image_3d, (-1, column_count * plane_count))
pngWriter.write(out, image_2d)

此外,这里还提供了使用PIL Image的另一种方法。然而,这主要适用于RGB样式的3通道图像。

最新更新