2014-10-27 13 views
5

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. Preview surface

Captured still image

Co robię źle?

+0

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. –

Odpowiedz

2

Naprawiono! Ogólnym pomysłem jest obliczyć obszar przycinania dla podglądu i obrazów nieruchomych oddzielnie.

1) Obliczenie przycięcia do nieruchomego obrazu jak na pierwsze stanowisko (Zastosowanie 4: 3 prostokąt)

2) do podglądu się powyżej obszaru uprawy (4: 3) i zmniejszenie rozmiaru pionowego, aby uzyskać 16: 9 prostokąta .

+1

proszę wyjaśnić szczegółowo. Stoję w obliczu tego samego problemu. SurafaceView (1024x608, współczynnik kształtu 1,68) ImageReader (1024x608, współczynnik kształtu 1,68) Rozmiar czujnika aparatu to 4096 * 2432 (współczynnik kształtu 1,68) – DreamCoder