RGB生ファイルを各チャンネルに1つずつ3つのファイルに分割しますか?

RGB生ファイルを各チャンネルに1つずつ3つのファイルに分割しますか?

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.rawR / 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

おすすめ記事