2016-03-05 541 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

您可以保存任何类型的图像的这种方法。

如果你可以提供一些关于你想达到什么的细节。你需要做一次或者需要它作为程序的一部分。

希望有帮助。