Как выделить отдельный кадр с камеры
Как выделить отдельный кадр с камеры
У меня захватывается поток с камеры в surfaceview. Как получать из этого потока каждое отдельное изображение для анализа?? Можно ли как нибудь извлечь информацию из surfaceview и сохранить в bitmap?? Если да то как? можете фрагмент кода привести?
Re: Как выделить отдельный кадр с камеры
можно ли выделить кадр с камеры и сохранить в Bitmap??
Re: Как выделить отдельный кадр с камеры
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Как выделить отдельный кадр с камеры
но это если выделять кадр с видеофайла а мне нужно с камеры устройства. Я видео с камеры снимаю. Но мне нужно обрабатывать отдельные кадры. Для этого я так понимаю нужна библиотека а без подключения библиотеки можно сделать??
Re: Как выделить отдельный кадр с камеры
http://stackoverflow.com/a/9075166
вариант с этим - http://developer.android.com/reference/ ... Image.html, возможен, но всеже лучше использовать NDK.
вариант с этим - http://developer.android.com/reference/ ... Image.html, возможен, но всеже лучше использовать NDK.
Re: Как выделить отдельный кадр с камеры
NDK может и лучше только с ним серьезные проблемы в Android Studio начиная с 1.0 например не удается подключить библиотеку stl. Поэтому NDK как я понимаю лучше подключать в eclipse и пользовать его там верно??
Re: Как выделить отдельный кадр с камеры
Если использовать OpenCV / JavaCV, существенно срезается частота дискретизации потока с камеры. Например, у меня с использованием SurfaceView и записи видео с помощью MediaRecorder телефон выдает 17 - 25 фпс, а через OpenCV - 15 - 17.altwin писал(а):http://stackoverflow.com/a/9075166
вариант с этим - http://developer.android.com/reference/ ... Image.html, возможен, но всеже лучше использовать NDK.
Долго плавал на стеке и вроде бы понял, что SurfaceView использует аппаратное ускорение, и нельзя так просто брать и цеплять каждый кадр, который на SurfaceView отрисовывается с достаточно высоким фпс.
Пробовал считать, сколько кадров захватывает Camera.CameraPreview.OnCameraPreview(byte[] data) - если в тело метода ничего не писать, то работает относительно быстро - у меня метод вызывался 18 - 21 раз в секунду. То есть по идее можно захватываемый методом массив data посылать в отдельный поток в его теле, где уже и что-то обрабатывать. Но мне кажется, что даже передача данных в поток его сильно замедлит, и кадры начнут теряться.
Все это я веду к тому, что есть вопрос, которым я мучаюсь уже не одну неделю. Как можно обрабатывать кадры с камеры с максимально возможным ФПС ?
Подскажите, пожалуйста, кто решал такую задачу.
Ведь есть же приложения с фильтрами и т. п., которые обрабатывают кадры с максимальным фпс. Если они это могут, значит и я могу. Не думаю, что во всех них используется прослойка в лице OpenCV.