我用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数组而不将其保存到文件中? 谢谢。