3

次の形式(シリアル)でバイナリファイルにダンプされたBGRAイメージがあります:[(b、g、r、a)、(b、g、r、a)、(b、g、r、a).. .] 画像の幅、高さ、チャンネル数を知っています (この場合はもちろん 4 つです)。

最初の次元が B 値などを表す 4D 配列に画像を読み込みたいとします。次のコードがあります。

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...] .. [] ..]]
4

1 に答える 1

4

まあ、これはほとんど簡単すぎるように感じますが、解決策は次のとおりです。

data = data.reshape(channels, width, height, order='F')
于 2015-02-02T14:45:44.933 に答える