La Web del Programador: Comunidad de Programadores
 
    Pregunta:  34942 - COMO PASAR UNA IMAGEN DE COLOR A ESCALA DE GRISES EN C
Autor:  beto
Buenas me gustaria saber como puedo pasar una miagen jpeg en color a escala de grises,estoy usando el c builder.gracias

  Respuesta:  David Guerrero
Hola.

Si puedes acceder a los pixeles de la imagen jpeg en forma individual, estas operaciones aritméticas te convierten una combinación de los componentes rojo, verde y azul de un pixel a su equivalente en blanco y negro.

int r, v, a, bn; //inicializas r(rojo), v(verde), a(azul)

bn = (77/256)*r + (150/256)*v + (29/256)a;

Esta formula calcula la luminancia, la cual si te interesa saberlo, es parte del modelo de color YCbCr, el cual, por cierto, es usado por el formato jpeg.