68

(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

4

8 に答える 8

118

convert <img_in> -set colorspace Gray -separate -average <img_out>私にとっては、どの画像でも最高の結果が得られます。

于 2012-11-21T15:05:54.643 に答える
18

この(r+g+b)/3メソッドを使用すると、グレースケールの効果が適用されますが、画像はsRGBのままになります(これは、このメソッドで期待される動作です)。コマンドとともに目的の色空間を指定する必要があります-fx

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
于 2012-11-12T15:05:07.917 に答える
14

Fish shellで画像をバッチ変換するには:

for file in *.jpg; convert -colorspace Gray $file $file; end;

于 2015-10-16T19:10:58.207 に答える