如何从ImageReader Camera2映射用于图像接收的CameraResult的getFrameNumber

时间:2018-05-23 09:17:05

标签: android android-camera2 image-reader

对于我的相机2,我需要getFrameNumberImageReader收到的Image对象。

目前,我收到了以下代码的不同时间戳,因此,我无法映射getFrameNumber CameraResult回调的 CameraCaptureSession.CaptureCallback captureListenerLeft = new CameraCaptureSession.CaptureCallback() { @Override public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { super.onCaptureCompleted(session, request, result); Log.d(TAG, "#### Camera Preview: FrameNumber:[" + result.getFrameNumber()+"] TimeStamp:[" + result.get(CaptureResult.SENSOR_TIMESTAMP) / 1000000 + "] Expo:[" +result.get(CaptureResult.SENSOR_EXPOSURE_TIME)+ "] FrameDuration:[" + result.get(CaptureResult.SENSOR_FRAME_DURATION) + "]"); } };

ImageReader.OnImageAvailableListener mImgLeftCameraListener=new ImageReader.OnImageAvailableListener() {
        @Override
        public void onImageAvailable(ImageReader imageReader) {

            try{
                Image mImage=imageReader.acquireNextImage();
                long mTimeStap=mImage.getTimestamp()/1000000;              
                mImage.close();
            }catch (Exception exc){

                exc.printStackTrace();
            }

        }
    };

现在在ImageReader回调: -

mTimeStap

现在问题是图片阅读器result.get(CaptureResult.SENSOR_TIMESTAMP) / 1000000plt.plot(x,y)值不匹配,所以我无法映射getFrameNumber。

注意:我的android是高通820的7.1.1自定义操作系统构建。

1 个答案:

答案 0 :(得分:0)

时间戳是匹配这些的唯一方法;通过API的设计,它们应该匹配。您在时间戳值中看到了哪些差异?

编辑:要添加,无法从图像阅读器获取帧编号;该值根本不会传递给ImageReader。