【发布时间】:2016-09-25 21:17:38
【问题描述】:
搜索了几个小时后,我最终找到了this 链接。下面是一些背景信息。
我正在通过硬件调试器捕获正在运行的嵌入式设备的实时帧。捕获的帧存储为raw binary files,没有标题或格式。在查看了上面的链接并理解了 NumPY 和 Matplotlib 之后,我能够成功地将原始二进制数据转换为图像。这很重要,因为我不确定原始二进制文件的链接是否对任何人有帮助。
我使用这个代码:
import matplotlib.pyplot as plt # study documentation
import numpy as np # " "
iFile = "FramebufferL0_0.bin" # Layer-A
shape = (430, 430) # length and width of the image
dtype = np.dtype('<u2') # unsigned 16 bit little-endian.
oFile = "FramebufferL0_0.png"
fid = open(iFile, 'rb')
data = np.fromfile(fid, dtype)
image = data.reshape(shape)
plt.imshow(image, cmap = "gray")
plt.savefig(oFile)
plt.show()
现在,我显示的图像是黑白的,因为彩色图是灰度图(对吗?)。实际捕获的帧不是黑白的。也就是说,我在嵌入式设备上看到的图像是“彩色的”。
我的问题是,如何从原始二进制文件中计算每个像素的实际颜色?有没有办法从原始二进制文件中获取图像的实际颜色图?我查看了this 示例,我确信,如果我能够计算 R、G 和 B 通道(以及 Alpha),我将能够重新创建准确的图像。一个示例代码会很有帮助。
【问题讨论】:
标签: python numpy matplotlib