Страница 1 из 1
Как выделить отдельный кадр с камеры
Добавлено: 09 апр 2015, 12:40
yura91
У меня захватывается поток с камеры в surfaceview. Как получать из этого потока каждое отдельное изображение для анализа?? Можно ли как нибудь извлечь информацию из surfaceview и сохранить в bitmap?? Если да то как? можете фрагмент кода привести?
Re: Как выделить отдельный кадр с камеры
Добавлено: 09 апр 2015, 13:42
yura91
можно ли выделить кадр с камеры и сохранить в Bitmap??
Re: Как выделить отдельный кадр с камеры
Добавлено: 09 апр 2015, 16:47
doter.ua
Re: Как выделить отдельный кадр с камеры
Добавлено: 16 май 2015, 23:12
yura91
но это если выделять кадр с видеофайла а мне нужно с камеры устройства. Я видео с камеры снимаю. Но мне нужно обрабатывать отдельные кадры. Для этого я так понимаю нужна библиотека а без подключения библиотеки можно сделать??
Re: Как выделить отдельный кадр с камеры
Добавлено: 16 май 2015, 23:30
altwin
Re: Как выделить отдельный кадр с камеры
Добавлено: 01 июн 2015, 00:23
yura91
NDK может и лучше только с ним серьезные проблемы в Android Studio начиная с 1.0 например не удается подключить библиотеку stl. Поэтому NDK как я понимаю лучше подключать в eclipse и пользовать его там верно??
Re: Как выделить отдельный кадр с камеры
Добавлено: 20 июн 2016, 16:12
idementia
Если использовать OpenCV / JavaCV, существенно срезается частота дискретизации потока с камеры. Например, у меня с использованием SurfaceView и записи видео с помощью MediaRecorder телефон выдает 17 - 25 фпс, а через OpenCV - 15 - 17.
Долго плавал на стеке и вроде бы понял, что SurfaceView использует аппаратное ускорение, и нельзя так просто брать и цеплять каждый кадр, который на SurfaceView отрисовывается с достаточно высоким фпс.
Пробовал считать, сколько кадров захватывает Camera.CameraPreview.OnCameraPreview(byte[] data) - если в тело метода ничего не писать, то работает относительно быстро - у меня метод вызывался 18 - 21 раз в секунду. То есть по идее можно захватываемый методом массив data посылать в отдельный поток в его теле, где уже и что-то обрабатывать. Но мне кажется, что даже передача данных в поток его сильно замедлит, и кадры начнут теряться.
Все это я веду к тому, что есть вопрос, которым я мучаюсь уже не одну неделю. Как можно обрабатывать кадры с камеры с максимально возможным ФПС ?
Подскажите, пожалуйста, кто решал такую задачу.
Ведь есть же приложения с фильтрами и т. п., которые обрабатывают кадры с максимальным фпс. Если они это могут, значит и я могу. Не думаю, что во всех них используется прослойка в лице OpenCV.