搜索了幾個小時後,我結束了this鏈接。以下是一些背景信息。從原始的二進制圖像數據到Python中的PNG
我通過硬件調試器捕捉正在運行的嵌入式設備的活動幀。捕獲的幀存儲爲raw binary file,沒有標題或格式。在看過上面的鏈接和理解之後,儘管敷衍,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),我將能夠重新創建精確的圖像。一個示例代碼會有很大的幫助。
「圖像確實有顏色信息,但是當您抓取數據時,您只能抓取四個通道中的一個。」是的,我想這似乎是問題所在。我怎樣才能分別獲取每個頻道? 我粘貼了錯誤的二進制文件,正確的是:http://pastebin.com/FGEDRbjC 這與430 * 430(size == 184990)的圖像形狀一致, –