Android: Conversión de imagen en color a escala de grises [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Convierta un mapa de bits a GrayScale en Android 4 respuestas

Hola chicos, necesito su ayuda, estoy tratando de convertir la imagen en color en escala de grises usando el promedio de rojo, verde y azul. Pero sale con errores,

Aquí está mi código

imgWidth = myBitmap.getWidth();
imgHeight = myBitmap.getHeight();

for(int i =0;i<imgWidth;i++) {
    for(int j=0;j<imgHeight;j++) {
     int s = myBitmap.getPixel(i, j)/3;
     myBitmap.setPixel(i, j, s);
    }
}

ImageView img = (ImageView)findViewById(R.id.image1);
img.setImageBitmap(myBitmap);

Pero cuando ejecuto mi aplicación en Emulator, se cierra de manera forzada. ¿Alguna idea

He resuelto mi problema, use el siguiente código:

for(int x = 0; x < width; ++x) {
            for(int y = 0; y < height; ++y) {
                // get one pixel color
                pixel = src.getPixel(x, y);
                // retrieve color of all channels
                A = Color.alpha(pixel);
                R = Color.red(pixel);
                G = Color.green(pixel);
                B = Color.blue(pixel);
                // take conversion up to one single value
                R = G = B = (int)(0.299 * R + 0.587 * G + 0.114 * B);
                // set new pixel color to output bitmap
                bmOut.setPixel(x, y, Color.argb(A, R, G, B));
            }
        }

Respuestas a la pregunta(6)

Su respuesta a la pregunta