2016-04-07 27 views
1

Sayısal bir şekil dizisinde (3072,1) veya (3,32,32) görüntü var. Bu, ilk 1024 değerleri, Kırmızı bileşen ve ardından 1024 Yeşil bileşen ve ardından 1024 Mavi bileşen'a karşılık gelir. Bu 1024 değerleri 32x32 boyutundaki görüntüye karşılık gelir. Ben bilmek istiyorum bu diziyi 32x32x3 boyut dizisine dönüştürmek için herhangi bir pythonic yolu veya kısayolu var, böylece diziyi gerçek görüntüye kaydedebilir miyim?3x32x32 boyutundaki numpy görüntü dizisini 32x32x3'e dönüştürme ve Python'daki gerçek görüntüye kaydetme

Sadece piksel değerleri kadar karışık olacak sonra

x = numpy.reshape(x,(32,32,3)) 

tarafından boyutuna (32x32x3) ile yeniden şekillendirmek ve ben orijinal beri kaydettikten sonra gerçek görüntü elde etmezse burada sorundur görüntü şeklindeydi (3,32,32)

Sadece diziyi gerçek görüntüye kaydetmek istiyorum.

cevap

4

Kullanım transposition: - yani, (renk değerlerini) birinci eksen taşımak için

x = numpy.transpose(x, (1, 2, 0)) 

Bu 0, 1, 2 olarak orijinal eksenler sırasını gösteren, bunları sırayla 1, 2, 0 yeniden düzenlenmelidir istiyorum demektir sağ.

1

Sen np.rollaxis kullanabilirsiniz:

In [5]: np.rollaxis(a,0,3).shape 
Out[5]: (32, 32, 3)