Android 5.0 Regiones de recorte incorrectas en la superficie de vista previa y la imagen fija capturada

Estoy tratando de obtener un marco digital con zoom en Android 5.0 con la interfaz camera2. El documento apropiado para esa funcionalidad esdeveloper.android.com/camera2/captureRequest

Superficie utilizada en mi aplicación:

SurafaceView (1920x1080, relación de aspecto 16: 9)ImageReader (3264x2448, relación de aspecto 4: 3)

El tamaño del sensor de la cámara es 3280x2464 (relación de aspecto 4: 3)

La región de cultivo que quiero obtener del sensor es:

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

Configuré este Rect como parámetro para la solicitud de vista previa:

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

Y para tomar una imagen fija:

stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);

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

Resultados previstos:

El rectángulo de recorte de Coz tiene una relación de 4: 3, luego la vista previa debe recortarse verticalmente (buzón)La imagen fija debe ser la región de recorte exacta.Tanto la vista previa como la imagen fija deben centrarse en el mismo punto de la escena, y deben diferir solo en los bordes verticales.

Resultado real:

Vista previa y punto de imagen fija en una escena diferente que parece moverse verticalmente. Mira adjuntar imágenes.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta