我有一个 BGRA 图像以以下格式(串行)转储到二进制文件:[(b,g,r,a),(b,g,r,a),(b,g,r,a).. .] 我知道图像的宽度、高度和通道数(在这种情况下当然是 4 个)。
我想将图像读入一个 4D 数组,其中第一个维度表示 B 值等。我有以下代码:
data = np.fromfile(fbin, np.dtype('B'))
print data
这会打印出类似的内容:
[ 79 90 92 0 80 91 93 0 84 96 98 0 ...]
其中 79 是 B,90 是 G,92 是 R,0 是 A,依此类推。现在我试图像这样重塑“数据”:
print data.reshape(channels, height, width)
得到以下内容:
[[[ 79 90 92 0 ...] .. [] ..]
[[109 ...] .. [] ..]
[[118 ...] .. [] ..]
[[ 0 ...] .. [] ..]]
我想得到的是这样的:
[[[ 79 ...] .. [] ..]
[[90 ...] .. [] ..]
[[92...] .. [] ..]
[[0...] .. [] ..]]