我正在使用OpenCV4Android,我正在尝试使用VideoCapture类打开Android相机并在每个捕获的帧上执行进一步处理。
答案 0 :(得分:0)
您好我正在使用opencv处理android,我很遗憾地告诉您,您无法在cpp中使用opencv打开流。 ndk android没有给任何API访问摄像头,所以opencv无法打开任何流。我曾经看过一次Android 4.4的API如果我记得很清楚,但我没有成功打开任何东西。
由于android 7.0的重新启动你可以访问一些让你有权拍照的C函数,看看这个标题:camera / NdkCameraManager.h。
如果你有一个代码的开头
#include <camera/NdkCameraManager.h>
#include <android/log.h>
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "gandoulf", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "gandoulf", __VA_ARGS__))
void AndroidCamera()
{
ACameraIdList *cameraList; //list of available camera
ACameraManager *cameraManager; // android camera manager
camera_status_t cameraStatus; // enum for the error while using camera
cameraManager = ACameraManager_create(); // instantiate the camera manager
cameraStatus = ACameraManager_getCameraIdList(cameraManager, &cameraList); // get the list of available camera, return enum camera_status_t for the error
if (cameraStatus == ACAMERA_OK) {
LOGI("cameraList ok\n");
LOGI("num of camera = %d", cameraList->numCameras);
}
else
LOGW("ERROR with cameraList\n");
}
有了相机列表,您可以通过标题中的功能正常拍照。