3
私は画像処理(畳み込みニューラルネットワークで使用するために大量の画像データを準備する)を行うスクリプトをいくつか書いています。そのプロセスの一部として、私は一つの大きな画像をより多くの小さな画像に並べています。単一の大きな画像は、3チャンネル(RGB)の.png画像です。ただし、matplotlib.image.imsave
を使用して画像を保存すると、4チャンネルになります。コードの最小限の動作例は以下の通りです(python 2.7を参照)。pythonに3チャンネルpng画像を書き込ませるには
#!/usr/bin/env python
import matplotlib.image as mpimg
original_image = mpimg.imread('3-channel.png')
print original_image.shape
mpimg.imsave('new.png', original_image)
unchanged_original_image = mpimg.imread('new.png')
print unchanged_original_image.shape
の出力は、次のとおり
(300、200、3)
(300、200、4)
私の質問がある:なぜmatplotlib.image.imsave
第4チャンネルをそこに強制するのですか? (最も重要なのは)3つのカラーチャンネル(RGB)のみが保存されることを確認するために何ができるのですか?
私が作成したサンプル画像は以下の通りです:
ありがとうを使用することができ
matplotlib
する必要がない場合。私が思いついた解決策は似ていました。 'scipy.misc.imsave(...)'は同じことをしているようです - 'scipy.misc.imsave()'と ' scipy.misc.toimage()。save() 'を実行します。私はまだmatplotlibが第4チャンネルを強制しているように見えるのは不思議です... – TravisJ