2013-05-18 9 views

Odpowiedz

12

Z OpenCV documentation:

Klasa org.opencv.android.JavaCameraView jest realizowany wewnątrz biblioteki OpenCV. Jest on dziedziczony po CameraBridgeViewBase, który rozszerza się o SurfaceView i wykorzystuje standardowy interfejs API aparatu Android. Alternatywnie możesz użyć klasy org.opencv.android.NativeCameraView, która implementuje ten sam interfejs, ale używa klasy VideoCapture jako back-end dostępu do aparatu. opencv:show_fps="true" i opencv:camera_id="any" opcje włączania wiadomości FPS i zezwalaj na korzystanie z dowolnej kamery na urządzeniu. Aplikacja próbuje najpierw użyć kamery cofania.

Implementacja interfejsu CvCameraViewListener umożliwia dodawanie kroków przetwarzania po przechwytywaniu klatek z kamery i przed jej renderowaniem na ekranie. Najważniejszą funkcją jest onCameraFrame. Jest to funkcja wywołania zwrotnego i wywoływana jest podczas pobierania ramki z kamery. Wejście wywołania zwrotnego jest obiektem klasy CvCameraViewFrame, który reprezentuje klatkę z kamery.

+0

Nadal nie jest jasne, który z nich jest lepszy w przetwarzaniu obrazów, na przykład w przypadku wykrywania przez ludzi .. tablica pikseli gettin itp. – Yoda

+0

zobacz zaktualizowaną odpowiedź –

+2

Czy ktoś może rozwinąć różnicę między interfejsem API aparatu Android a klasą OpenCV VideoCapture od użycia punkt widzenia? Wydajność, funkcje, stabilność, czy klasa VideoCapture jest dostępna tylko z wersji c/C++? –

11

po prostu wziął tę odpowiedź od here (co jest nieco stary odpowiedź) i dodano, co przeżyłem:

rodzimy aparat:

  • (+1) wyższy framerate

  • (+1) przechwytuj RGBA, nie musisz konwertować z formatu Android Yuv.

  • "Kompilowany tylko dla architektury armv7" nie jest już prawdziwy.
  • (-1) nie działa na wszystkich urządzeniach -> Potwierdzam !! Dlatego nie używam tego !! patrz bug 2359.
  • (-1) nie obsługują autofokusa, ustawienie wzmocnienia .. (2012) odpowiedział w

Mam nadzieję, że może to być pomocne!

Powiązane problemy