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í.