(r + g + b)/ 3メソッドを使用して、RGB画像(3チャンネル)をグレースケールに変換するにはどうすればよいですか?例のページに目を通します: http://www.imagemagick.org/Usage/color_mods/#grayscale しかし、望ましい方法:
convert test.png -fx '(r+g+b)/3' gray_fx_average.png
私に間違った結果を与えました-結果の画像にはまだ3つのチャンネルがあります。
これを確認するには、次のコマンドを実行します:identify -format "%[colorspace] <== %f\n" *.png
。
convert <img_in> -set colorspace Gray -separate -average <img_out>
は、私にとってどんな画像に対しても最高の結果をもたらします。
(r+g+b)/3
メソッドを使用すると、グレースケールの効果が適用されますが、画像はsRGB(のままになります。これは、このメソッドで予期される動作です) 。 -fx
コマンドとともに、目的の colorspace を指定する必要があります。
convert test.png -fx '(r+g+b)/3' -colorspace Gray gray_fx_average.png
identify -format "%[colorspace] <== %f\n" gray_fx_average.png
で確認
Gray <== gray_fx_average.png
Fish Shellで画像をバッチ変換するには:
for file in *.jpg; convert -colorspace Gray $file $file; end;