imagemagick grayscale

Convertir RGB a escala de grises en la línea de comandos de ImageMagick



grayscale (3)

El uso del método (r+g+b)/3 aplicará los efectos de la escala de grises, pero la imagen permanecerá en sRGB ( que es el comportamiento esperado para este método ). Deberá especificar el colorspace deseado junto con el comando -fx .

convert test.png -fx ''(r+g+b)/3'' -colorspace Gray gray_fx_average.png

Verifique con identify -format "%[colorspace] <== %f/n" gray_fx_average.png

Gray <== gray_fx_average.png

¿Cómo convierto una imagen RGB (3 canales) a una escala de grises usando el método (r + g + b) / 3? Miro a través de una página de ejemplos: http://www.imagemagick.org/Usage/color_mods/#grayscale pero el método deseado:

convert test.png -fx ''(r+g+b)/3'' gray_fx_average.png

Me dio un resultado incorrecto, la imagen resultante aún tiene 3 canales.

Puede verificar esto ejecutando un comando: identify -format "%[colorspace] <== %f/n" *.png .


Para convertir por lotes las imágenes en Fish shell:

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


convert <img_in> -set colorspace Gray -separate -average <img_out> da el mejor resultado para cualquier imagen para mí.