Próbuję uzyskać cyfrowo powiększoną ramkę na Androidzie 5.0 z interfejsem camera2. Odpowiednie dokumentacji do tej funkcji jest developer.android.com/camera2/captureRequestAndroid 5.0 Nieprawidłowe obszary przycinania na powierzchni podglądu i przechwycone zdjęcie
powierzchni użytych w tym zastosowaniu:
- SurafaceView (1920x1080 16: 9 proporcji),
- ImageReader (3264x2448, 4: 3 aspektem)
Wielkość czujnika aparatu to 3280x2464 (format 4: 3)
Obszar uprawy, który chcę uzyskać z czujnika jest:
Rect zoomCropPreview = new Rect(1094, 822, 2186, 1642); //(1092x820, 4:3 aspect ratio)
ustawić ten Rect jako parametr żądanie podglądu
previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);
oraz do podjęcia jeszcze zdjęcie:
stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.capture(stillRequestBuilder.build(), new captureListener() , null);
Oczekiwane rezultaty:
- Rozmiar prostokąta prostokątnego wynosi 4: 3, a podgląd powinien zostać przycięty ped pionowo (skrzynka na listy)
- Obraz powinien być dokładnym obszarem przycięcia.
- Zarówno podgląd, jak i zdjęcie powinny być wyśrodkowane na tym samym punkcie sceny i powinny różnić się tylko pionowymi krawędziami.
rzeczywistym wynikiem:
- podgląd i obraz nieruchomy punkt na innym miejscu, które wydaje się być przesuwane w pionie. Zobacz załączone obrazy.
Co robię źle?
Jaki jest poziom sprzętu urządzenia (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL)? Jeśli LEGACY, możesz mieć problem z systemem operacyjnym poprawionym w późniejszych wersjach Androida. –