小编Con*_*giu的帖子

将Android camera2 api YUV_420_888转换为RGB

我正在编写一个应用摄像头的应用程序,将其转换为rgb,以便进行一些处理.

它适用于使用NV21 Yuv格式的旧相机实现.我遇到的问题是使用新的Yuv格式YUV_420_888.在新的Camera2 Api中,图像不再正确转换为RGB,后者发送YUV_420_888 yuv格式而不是NV21(YUV_420_SP)格式.

有人可以告诉我如何将YUV_420_888转换为RGB?

谢谢

rgb android yuv android-camera android-5.0-lollipop

17
推荐指数
3
解决办法
1万
查看次数

Android Camera2 getPreviewFrame

我试图让相机框架处于预览模式.我从github运行示例项目https://github.com/googlesamples/android-Camera2Basic

我遇到的问题是在预览模式下获取帧.

这是代码:

private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() {

    private void process(CaptureResult result) {
        switch (mState) {
            case STATE_PREVIEW: {

                //HERE, HOW CAN I RETRIEVE THE CURRENT FRAME?

                break;
            }
            case STATE_WAITING_LOCK: {
               ...
                break;
            }
            case STATE_WAITING_PRECAPTURE: {
             ...
                break;
            }
            case STATE_WAITING_NON_PRECAPTURE: {
             ...
                break;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试获取框架的另一件事是设置mImageReader.setOnImageAvailableListener.我期望能够获得框架onImageAvailable回调,但是永远不会调用onImageAvailable.onPreviewFrame是我自己的方法,我需要将它传递给当前帧.

  mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, /*maxImages*/2);
  mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, mBackgroundHandler);

  private final ImageReader.OnImageAvailableListener mOnImageAvailableListener  = new ImageReader.OnImageAvailableListener() {

    @Override
    public void onImageAvailable(ImageReader reader) {
        mTextureView.onPreviewFrame(reader.acquireNextImage().getPlanes([0].getBuffer().array());
    }

};
Run Code Online (Sandbox Code Playgroud)

我做错了什么?谢谢.

android android-camera android-5.0-lollipop

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×2

android-5.0-lollipop ×2

android-camera ×2

rgb ×1

yuv ×1