ImageReader - отменить некоторые кадры (уменьшить FPS)

У меня есть приложение, которое использует аппаратную камеру для анализа в OpenCV. Я использую ImageReader для получения кадров, а затем передаю их алгоритму. Но я хотел бы получить, скажем, 1 или 2 кадра в секунду из ImageReader.

Я пытался сделать это так:

val imageReaderListener = ImageReader.OnImageAvailableListener { reader ->
    reader?.let {
        fps++
        if (fps > 30) {
            val image = it.acquireLatestImage()
            //mage calculations
            fps = 0
            image.close()
        }
    }
}

Но, к сожалению, когда ImageReader max images установлен на 1 (мне нужно, чтобы пользователю показывали только последний результат, поэтому мне не нужно увеличивать это число), изображение с камеры зависает. Так есть ли способ уменьшить FPS, идущий в ImageReader?

0 ответов

Другие вопросы по тегам