如何在" .data"中查看图像文件

时间:2016-08-09 11:53:19

标签: python image numpy zlib raspberry-pi2

我用RPi相机(使用picamera库)将图像捕获到numpy数组中。我只使用了luma组件并使用matplotlib成功地将其可视化。 我把它保存到" image_Y.data"能够在其他程序中使用zlib压缩它:

import zlib, sys
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

unencod = open('image_Y.data','rb').read()           # open saved unencoded image
comprim = open('image_Y_comprim.data','wb')          # open new image file
comprim.write(zlib.compress(unencod,9))             # and write compressed image to it
comprim.close()               

comprim = open('image_Y_comprim.data','rb').read()
decomprim = zlib.decompress(comprim)                 # decompress image
decompr = open('image_Y_decomprim.data','wb')        # open new image file
decompr.write(decomprim)                               # and write decompressed image to it


# I tried to view the decompressed image by using these:
# 1.
Y_dec = np.fromfile('image_Y_decomprim.data', dtype=np.uint8)
plt.imshow(Y_dec)
plt.show()

# 2.
Y_dec = open('image_Y_decomprim.data', 'rb').read()
plt.imshow(Y_dec)
plt.show()

# 3.
im = Image.open('image_Y_decomprim.data')
im.show()

# 4.
with open('image_Y_decomprim.data') as f:
    Y_dec = f.read()
    plt.imshow(Y_dec)
    plt.show() 

没有。 1返回:

plt.imshow(Y_dec)
TypeError: Invalid dimensions for image data

没有。 2和4:

plt.imshow(Y_dec)
TypeError: Image data can not convert to float

没有。 3:

im = Image.open('image_Y_decomprim.data')
OSError: cannot identify image file 'image_Y_decomprim.data'

我也尝试用Gimp打开它但得到了一些奇怪的,无法识别的图像。顺便说一句,该计划工作。 (我不介意,如果有人建议进行一些更正 - 我非常初学者......)我不知道如何查看这个.data文件。

是否可以压缩那个numpy数组而不将其保存到文件中? 谢谢。

0 个答案:

没有答案