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?