画像を処理するために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に変換した後、画像を処理します。つまり、 をグレースケールで変換しますが、新しい画像を表示するにはどうすればよいですか? 私は助けが必要です、ありがとう!!!!!!!!!!!