RGB生ファイルをそれぞれ赤、緑、青のチャンネルを含む3つのファイルに変換する必要があります。
ベストアンサー1
netpbmツールを使ってみましたか?これはR8G8B8および他の8ビットRGB命令に適用されます。
幅100高さ200 RGB順次生ファイルの場合:
rawtoppm -rgb 100 200 input.rgb > image.ppm
ppmtorgb3 image.ppm
現在、3種類pgm
のグレースケール画像ファイルがあり、それぞれ.red
.grn
と.blu
。.pgm
ほぼ短いヘッダーを除く生のバイナリ形式は次のとおりです。
tail +4 image.red > image_r.raw
tail +4 image.grn > image_g.raw
tail +4 image.blu > image_b.raw
本当にこんなオリジナルチャンネルが欲しいなら。または、さらに処理するには、次のようにします。
pgmtoppm red image.red > image_red.ppm
pgmtoppm green image.grn > image_grn.ppm
pgmtoppm blue image.blu > image_blue.ppm
これで、独立したRGBチャンネルである3つのフォーマットファイルがありますppm
(参照rgb3toppm
)。たとえば、次を使用してppmtoX
別の形式に変換できます。 2番目のパラメータの色の代わりにppmtopng
""を使用し、各パラメータをグレースケールのままにします。white
Imagemagickconvert
も便利ですが、RGB、RGBA、16ビットのネイティブフォーマットも処理し、-separate
チャンネル分割オプションがあります。
for ch in R G B; do
convert -set colorspace RGB -size 100x200 -depth 8 rgb:image.rgb \
-channel ${ch} -separate -depth 8 gray:image_${ch}.raw
done
-set colorspace
このオプションが入力に適していることを確認してください。最新バージョンでは、単一のコマンドでこれを実行できます。http://www.imagemagick.org/Usage/color_basics
convert ... -channel RGB -separate gray:image_%d.raw
image_0.raw image_1.raw image_2.raw
R / G / Bがファイルに書き込まれます。
convert
ヘルプとフィードバックに基づいてコマンドが更新されました。スティーブン・チャジェラス、ImageMagic-6.7.7以降、RGBの代わりにsRGBを使用して問題を引き起こす色空間の動作にいくつかの変更がありました。
# colorspace changes mean this works differently after ImageMagick-6.7.6
convert -size 100x200 -depth 8 rgb:image.rgb \
-channel ${ch} -separate -depth 8 gray:image_${ch}.raw