【问题标题】:Android 5.0 Wrong crop regions on preview surface and captured still imageAndroid 5.0 预览表面上的错误裁剪区域和捕获的静止图像
【发布时间】:2014-10-27 08:24:33
【问题描述】:

我正在尝试在带有 camera2 接口的 Android 5.0 上获取数字缩放帧。 该功能的适当文档是developer.android.com/camera2/captureRequest

我的应用程序中使用的表面:

  • SurafaceView(1920x1080,16:9 纵横比)
  • ImageReader(3264x2448,4:3 纵横比)

相机的传感器尺寸为 3280x2464(4:3 纵横比)

我想从传感器获取的裁剪区域是:

Rect zoomCropPreview = new Rect(1094, 822, 2186, 1642); //(1092x820, 4:3 aspect ratio)

我将此 Rect 设置为预览请求的参数:

previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);

并拍摄静止图像:

stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);

captureSession.capture(stillRequestBuilder.build(), new captureListener() , null);

预期结果:

  • 因为裁剪矩形是 4:3 的比例,那么预览应该垂直裁剪(信箱)
  • 静止图像应该是精确的裁剪区域。
  • 预览和静止图像都应以场景的同一点为中心,并且应仅在垂直边缘上有所不同。

实际结果:

  • 不同场景上的预览和静止图像点似乎垂直移动。看附件图片。

我做错了什么?

【问题讨论】:

标签: android android-camera zooming android-5.0-lollipop


【解决方案1】:

已修复! 一般的想法是分别计算预览和静止图像的裁剪区域。

1) 像初始帖子一样计算静止图像的裁剪区域(使用 4:3 矩形)

2) 在裁剪区域 (4:3) 上方进行预览,并减小垂直尺寸以获得 16:9 矩形。

【讨论】:

  • 请详细说明。我面临同样的问题。 SurafaceView (1024x608, 1.68 aspect ratio) ImageReader (1024x608, 1.68 aspect ratio) Camera的传感器尺寸是4096*2432 (1.68 aspect ratio)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2014-06-02
相关资源
最近更新 更多