Convert RGB to Grayscale in ImageMagick command-line
To batch convert images in Fish shell:
for file in *.jpg; convert -colorspace Gray $file $file; end;
Using the (r+g+b)/3
method will apply the effects of grayscale, but the image will remain in sRGB (which is the expected behavior for this method). You'll need to specify the desired colorspace along with the -fx
command.
convert test.png -fx '(r+g+b)/3' -colorspace Gray gray_fx_average.png
Verify with identify -format "%[colorspace] <== %f\n" gray_fx_average.png
Gray <== gray_fx_average.png
convert <img_in> -set colorspace Gray -separate -average <img_out>
gives the best result for any image for me.