Android: Converter imagem colorida em escala de cinza [duplicado]

Esta pergunta já tem uma resposta aqui:

Converta um bitmap para GrayScale no Android 4 respostas

Oi pessoal Preciso da sua ajuda, estou tentando converter imagem colorida em escala de cinza usando a média de vermelho, verde e azul. Mas sai com erros,

Aqui está meu 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);

Mas quando executo meu aplicativo no emulador, é forçado a fechar. Qualquer ideia

Resolvi meu problema, use o seguinte 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));
            }
        }

questionAnswers(3)

yourAnswerToTheQuestion