2011-08-01 4 views
2

Я хочу использовать свой телефон для Android, чтобы обработать изображение, например, сделать любую операцию с рамкой и показать ее с изменением (показать изображение в черно-белое, серого, сепия и т. Д.). Это мой код:Обработка кадров камеры на Android

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback,PreviewCallback { 
    SurfaceHolder mHolder; 
    Camera mCamera; 

    private Parameters parameters; 
    private Size previewSize; 
    private int[] pixels; 
    public CameraPreview(Context context) { 
    super(context); 
    SurfaceHolder mHolder = getHolder(); 
    mHolder.addCallback(this); 
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_NORMAL); 
    this.setFocusable(true); 
    this.requestFocus(); 
} 
public void surfaceCreated(SurfaceHolder holder) { 
    mCamera = Camera.open(); 
} 

public void surfaceDestroyed(SurfaceHolder holder) { 
    mCamera.stopPreview(); 
    mCamera.release(); 
    mCamera = null; 
} 
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
setImageSize(); 
mCamera.startPreview(); 
mCamera.setPreviewCallback(this); 
} 
public void onPreviewFrame(byte[] data, Camera camera) { 
    // transforms NV21 pixel data into RGB pixels 
    decodeYUV420SP(pixels, data, previewSize.width, previewSize.height); 
    //here process the image 
    } 
} 

проблема заключается в том, что я не знаю, как показать новое изображение обрабатывается. В onPreviewFrame я конвертирую yuv в rgb, затем обрабатываю изображение, то есть конвертировать в оттенках серого, но что я делаю для показа нового изображения? Мне нужна помощь, спасибо !!!!!!!!!!!

ответ

0

Я прочитал статью по адресу: http://nhenze.net/?p=107 Из того, что я читал в сообщении, это не очень легко сделать, потому что onPreviewFrame не синхронизируется с отображением кадров.

Вместо этого они используют трюк, чтобы установить другой вид поверх SurfaceView. На этом новом представлении они отображают изображения на текстуре OpenGL с помощью OpenGL ES.

Я не играл с ним сам, но надеюсь, что это поместит вас в правильном направлении.

Смежные вопросы