2016-03-05 73 views
0

我試圖將48x48圖像的uint8 array轉換爲相應的48x48圖像文件(jpg/jpeg/gif)。我嘗試將數組內容轉換爲第一個二進制文件,然後將其寫入('wb'模式)到一個文件中,但這並沒有解決。將uint8數組轉換爲圖像

有沒有辦法讓我做到這一點?

+0

您可以將numpy數組轉換爲PIL.image,然後使用「save」方法將其編碼爲jpg –

+0

@Yaroslav Yup有一種方法可以使用PIL庫https://www.kaggle.com/c/challenge-in-representation-learning-facial-expression-recognition-challenge/forums/t/4393/data-set – serpent403

回答

2

如果你是生產在TensorFlow圖像(因爲我從你的標記推斷),你可以使用tf.image.encode_jpeg()tf.image.encode_png() OPS的uint8張量編碼爲圖像:

uint8_data = ... 
image_data = tf.image.encode_png(uint8_data) 

的結果op是一個tf.string張量,您可以評估並寫入文件。

+0

Thanks @mrry!順便說一句,我找到了一種方法來使用PIL python庫做到這一點https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/forums/t/4393/data-set – serpent403

1

我能夠很容易地使用八度。 在這裏,我試圖生成一個48×48的隨機矩陣,然後我將圖像保存爲jpg格式。

img = rand(48,48); 
imwrite(img, "test.jpg") 

Image of 48x48

您可以保存任何類型的圖像的這種方法。

如果你可以提供一些關於你想達到什麼的細節。你需要做一次或者需要它作爲程序的一部分。

希望有幫助。