我一直在谷歌搜索使用
python库显示原始图像数据的方法,但找不到任何适当的解决方案.数据来自相机模块,并具有’.raw’扩展名.此外,当我尝试通过’more filename.raw’在终端中打开它时,控制台说这是一个二进制文件.供应商告诉我相机输出16位原始灰度数据.
但我想知道如何通过PIL,Pillow或Numpy显示这些数据.我测试了PIL的Image模块.但是,它无法识别图像数据文件.似乎PIL不将.raw文件视为图像数据格式.可以显示BMP文件,但是’.raw’不能.
当我尝试使用read函数和matplotlib时,如下所示
from matplotlib import pyplot as plt
f = open("filename.raw", "rb").read()
plt.imshow(f)
plt.show()
然后发生错误
ERROR: Image data can not convert to float
任何想法将不胜感激.
我用以下代码做了一些改进.但现在的问题是这段代码只显示整个图像的某些部分.
from matplotlib import pyplot as plt
import numpy as np
from StringIO import StringIO
from PIL import *
scene_infile = open('G0_E3.raw','rb')
scene_image_array = np.fromfile(scene_infile,dtype=np.uint8,count=1280*720)
scene_image = Image.frombuffer("I",[1280,720],
scene_image_array.astype('I'),
'raw','I',0,1)
plt.imshow(scene_image)
plt.show()