我一直在谷歌搜索使用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()
然后
发生错误错误:图像数据无法转换为浮动
任何想法都将受到赞赏。
链接: camera module
我使用以下代码进行了一些改进。但现在问题是这段代码只显示整个图像的某些部分。
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()