2012-10-27 5 views
4

Android의 프로젝트에서 비디오를 캡처하여 실시간으로 처리하려고합니다 (예 : Kinect). 나는 두 가지 방법으로 시도했다. OpenCV를 사용하여 mCamera.grab() 및 capture.retrieve (mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA)를 계속 호출했다. 또는 안드로이드의 카메라를 유지 캡처하여 이미지.Android에서 OpenCV 카메라가 비디오를 캡처 할 때 Android 카메라보다 빠릅니다.

OpenCV 카메라가 Android보다 빠르게 이미지를 캡처 할 수 있다고 생각합니다. 하지만 왜?

+0

"캡처"즉 takePicture()를 사용하는 경우 느리게 반응합니다. 실시간으로 비디오 작업은 [onPreviewFrame()]으로 [setPreviewCallbackWithBuffer()] (http://developer.android.com/reference/android/hardware/Camera.html#setPreviewCallbackWithBuffer (android.hardware.Camera.PreviewCallback))를 통해 수행되어야합니다.()'콜백. –

+0

이상한, 나는 반대 경험을했다, opencv 카메라는 분명히 안드로이드 것보다 느리다. +1 ~ @Alex, 아마 songyy는 버퍼와 콜백을 사용하지 않았다. – Wang

+0

네이티브 카메라 뷰를 사용해야하지만 매우 빠릅니다. – Mustafa

답변

5

OpenCV는 해킹을 사용하여 Android 카메라에 대한 낮은 수준의 액세스 권한을 얻습니다. 네이티브 레이어와 관리되는 레이어간에 여러 데이터 복사 및 전환을 피할 수 있습니다.

+5

안녕하세요 Andrey, 매우 흥미로운 것 같습니다. 수행 된 작업에 대한 자세한 내용을 설명해 주시겠습니까? –

관련 문제