rocessamento de quadros de câmera Android em tempo re

Estou tentando criar um aplicativo Android que processe os quadros da câmera em tempo real. Para começar, eu só quero exibir uma versão em escala de cinza do que a câmera vê. Consegui extrair os valores apropriados da matriz de bytes noonPreviewFrame método. Abaixo está apenas um trecho do meu código:

byte[] pic;
int pic_size;
Bitmap picframe;
public void onPreviewFrame(byte[] frame, Camera c)
{
    pic_size = mCamera.getParameters().getPreviewSize().height * mCamera.getParameters().getPreviewSize().width;
    pic = new byte[pic_size];
    for(int i = 0; i < pic_size; i++)
    {
        pic[i] = frame[i];
    }
    picframe = BitmapFactory.decodeByteArray(pic, 0, pic_size);
}

O primeiro[width*height]alores @ dobyte[] matriz de quadros são os valores de luminância (escala de cinza). Depois de extraí-los, como mostrá-los na tela como uma imagem? Não é uma matriz 2D também, então como eu especificaria a largura e a altura?

questionAnswers(3)

yourAnswerToTheQuestion