Dobry dzień. Buduję aplikację na Androida przy użyciu OpenCV, gdy zauważyłem pewne rozbieżności w sposobie, w jaki biblioteka OpenCV pobiera dane wejściowe wideo z urządzenia z Androidem. Używam Nexus 5 2. generacji.
Poniżej mam zrzut ekranu z aplikacji OpenCV, pokazujący kwadrat:
Jak widać kwadrat wydaje się rozciągnięty i jest teraz prostokątem. Dla porównania oto zrzut ekranu z aplikacji Aparat:
Jednak z tego zrzutu ekranu pobranego z natywnej aplikacji aparatu kwadraty są naprawdę kwadratami. Następnie zmieniłem kod z:
<org.opencv.android.JavaCameraView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/color_blob_detection_activity_surface_view" />
do
<org.opencv.android.NativeCameraView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/color_blob_detection_activity_surface_view" />
Działa to dobrze na urządzeniach z Androidem 4.0-4.4, jednak kiedy uruchomiłem go na moim Nexusie 5 na Lollipop (5.0), dałem mi "It seems that your device does not support camera (or it is locked)."
błąd. Mam uprawnienia do kamery w moim Manifeście na Androida. Następnie sprawdziłem pliki w folderach libs, a potem zauważyłem, że mam libnative_camera_r2.2.0.so, dopóki libnative_camera_r4.4.0.so, wywnioskowałem, że rx.xxso odnosi się do numeru wersji i przyczyny, dla której tak się dzieje nie działa, ponieważ nie ma natywnej biblioteki aparatów dla Androida 5.0.
Moje pytanie brzmi teraz:
Kiedy zostanie wydana libnative_camera_r5.0.0.? Po prostu nie mogę użyć niższej wersji, ponieważ używam również niektórych funkcji unikalnych dla Androida Lollipop.
Odpowiedzi:
1 dla odpowiedzi № 1Dziennik zmian OpenCV dla wersji 3.0 zawiera natywną kamerę jako upuszczoną
„Druga, nieco smutna, ale nieunikniona wiadomość - musieliśmy zrezygnować z obsługi nativecamera na Androida. Używał on nieudokumentowanego API i nigdy nie działał stabilnie”.
od: https://github.com/Itseez/opencv/wiki/ChangeLog (post z czerwca 2015 r.)