Нативная камера Android AOSP 13 (NDK) не получает рамки в AimagereaderAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Нативная камера Android AOSP 13 (NDK) не получает рамки в Aimagereader

Сообщение Anonymous »

Я работаю над AOST 13 на плате VAR-SOM I.MX8MM и пытаюсь реализовать нативное обнаружение лица с использованием API NDK Camera2. Моя цель состоит в том, чтобы запечатлеть кадры с использованием aimagereader и обработать их с помощью Tensorflow Lite. CameradevicessessionHwlimpl: Handleimage: MimageList по -прежнему пуст после 100000000 NS
То, что я пробовал:
✅ камера успешно открывается (камерасервис :: Подключение /> ✅ Сессионное сеанс запускается успешно (Active Session Active появляется в журналах). < /p>
❌ Кадры не доставляются в ImageReader (Изображение доступно инициатором обратного вызова! Никогда не появляется). < /p>
✅ Проверка камеры. Настройка. "< /p>
Реализация кода: < /p>
Настройка Aimagereader и обратный вызов изображения: < /p>
// Creating AImageReader
AImageReader_new(320, 240, AIMAGE_FORMAT_JPEG, 10,
&imageReader);

AImageReader_ImageListener listener = {
.context = nullptr,
.onImageAvailable = ImageCallback
};
AImageReader_setImageListener(imageReader, &listener);
< /code>
обратный вызов изображения < /p>
void ImageCallback(void* context, AImageReader* reader) {
LOG("Image Available Callback Triggered!");

AImage* image;
media_status_t imgStatus = AImageReader_acquireLatestImage(reader, &image);
if (imgStatus != AMEDIA_OK || !image) {
LOGE("Failed to acquire image, status: %d", imgStatus);
return;
}

int32_t width, height, format;
AImage_getWidth(image, &width);
AImage_getHeight(image, &height);
AImage_getFormat(image, &format);
LOG("Received Image: %dx%d, Format: %d", width, height, format);

AImage_delete(image);
}
< /code>
Конфигурация запроса захвата < /p>
ACameraDevice_createCaptureRequest(cameraDevice, TEMPLATE_PREVIEW, &captureRequest);

// Attach ImageReader to Capture Request
ANativeWindow* nativeWindow;
AImageReader_getWindow(imageReader, &nativeWindow);
ACameraOutputTarget* imageReaderTarget;
ACameraOutputTarget_create(nativeWindow, &imageReaderTarget);
ACaptureRequest_addTarget(captureRequest, imageReaderTarget);

// Set Capture Request Parameters
ACaptureRequest_setEntry_i32(captureRequest, ACAMERA_SENSOR_SENSITIVITY, 1, (int32_t[]){400});
ACaptureRequest_setEntry_i32(captureRequest, ACAMERA_CONTROL_AE_TARGET_FPS_RANGE, 2, (int32_t[]){15, 30});
ACaptureRequest_setEntry_i32(captureRequest, ACAMERA_SCALER_CROP_REGION, 4, (int32_t[]){0, 0, 320, 240});

// Start Capture Session
camera_status_t cam_status = ACameraCaptureSession_setRepeatingRequest(
captureSession, nullptr, 1, &captureRequest, nullptr);

if (cam_status != ACAMERA_OK) {
LOGE("Failed to start capture session, status: %d", cam_status);
return;
}
LOG("Camera Capture Started!");


Подробнее здесь: https://stackoverflow.com/questions/794 ... magereader
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»