Я создаю приложение камеры для Android, в Kotlin, используя CameraX. Мой ImageAnalyzer выполнит некоторую обработку изображений, переданных с камеры, и мне нужно иметь возможность обрабатывать эти изображения как двумерные массивы.
Демонстрации CameraX используют этот код
val buffer = image.planes[0].buffer
// Extract image data from callback object
val data = buffer.toByteArray()
val pixels = data.map { it.toInt() and 0xFF }
в результате получается массив 1-D pixels
. Я бы предпочел использовать Bitmap.getPixel(x, y)
, что идеально. К сожалению, у меня нет растрового изображения и я не нашел способ его получить.
Как я могу проиндексировать изображение как двумерный массив?