Android NDK - 相机预览 - 获取和修改图像

问题描述 投票:0回答:1

我正在使用 android ndk 将相机预览渲染到 ui 中。这是通过一些本机 C++ 调用完成的。我一启动应用程序就已经看到了实时预览。

现在我想获取并修改图像。这怎么办?

我使用以下代码来设置我的相机预览

ACameraIdList *cameraIdList = NULL;
ACameraMetadata *cameraMetadata = NULL;
const char *selectedCameraId = NULL;
camera_status_t camera_status = ACAMERA_OK;

ACameraManager *cameraManager = ACameraManager_create();
camera_status = ACameraManager_getCameraIdList(cameraManager, &cameraIdList);
selectedCameraId = cameraIdList->cameraIds[0];

camera_status = ACameraManager_getCameraCharacteristics(cameraManager, selectedCameraId, &cameraMetadata);
deviceStateCallbacks.onDisconnected = camera_device_on_disconnected;
deviceStateCallbacks.onError = camera_device_on_error;

camera_status = ACameraManager_openCamera(cameraManager, selectedCameraId, &deviceStateCallbacks, &cameraDevice);
camera_status = ACameraDevice_createCaptureRequest(cameraDevice, templateId, &captureRequest);
ACaptureSessionOutputContainer_create(&captureSessionOutputContainer);

captureSessionStateCallbacks.onReady = capture_session_on_ready;
captureSessionStateCallbacks.onActive = capture_session_on_active;
captureSessionStateCallbacks.onClosed = capture_session_on_closed;


captureSessionCaptureCallbacks.onCaptureCompleted = capture_session_capture_on_completed;
captureSessionCaptureCallbacks.onCaptureProgressed = capture_session_capture_on_progressed;

ACameraMetadata_free(cameraMetadata);
ACameraManager_deleteCameraIdList(cameraIdList);
ACameraManager_delete(cameraManager);

之后,在每一帧上执行以下回调,所以我假设图像将被保存在任何一个结构中。

static void capture_session_capture_on_completed(void *context, ACameraCaptureSession *aCameraCaptureSession, ACaptureRequest *aCaptureRequest, const ACameraMetadata *aCameraMetadata) {
   
}

不幸的是,在https://developer.android.com/ndk/reference/group/camera#functions的帮助下,我找不到从

ACameraCaptureSession
ACaptureRequest
ACameraMetadata读取图像的正确方法

如何使用 android ndk 在 C++ 中读取/修改当前相机实时预览帧的图像对象/数据?

android android-ndk android-camera2
1个回答
0
投票

你可以试试这个:

https://github.com/fang-wuu/ncnn-android-yolov7/issues/16#issue-1709652848

它修改获取的相机图像。

© www.soinside.com 2019 - 2024. All rights reserved.