Command-Line
將RGB原始文件分成3個文件,每個通道一個?
我需要將 RGB 原始文件轉換為 3 個文件,每個文件包含紅色、綠色和藍色通道。
您是否嘗試過 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
您現在擁有三個
ppm
格式文件,它們是分離的 RGB 通道(另請參見 參考資料rgb3toppm
)。這些可以使用ppmtoX
例如轉換為其他格式ppmtopng
。使用“white
”代替第二個參數中的顏色,將每個參數保留為灰度。Imagemagick
convert
也可能很有用,它也可以處理 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_basicsconvert ... -channel RGB -separate gray:image_%d.raw
並且 R/G/B 將被寫入
image_0.raw image_1.raw image_2.raw
文件請注意,
convert
命令已根據Stephane Chazelas的幫助和回饋進行了更新,ImageMagic-6.7.7 對色彩空間行為進行了一些更改,這些更改由於(我相信)使用 sRGB 而不是 RGB 而導致問題。# 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