Когда я использую PiCamera, у меня есть фотографии или видео. Они описывают , что между ними есть разница. Я считаю, что при непрерывной съемке кадры выполняются медленнее. Видео имеет более высокую частоту кадров.
Когда я использую VideoCapture в OpenCV, кажется, что он захватывает с той же частотой непрерывных кадров. У меня есть пример python скрипт , чтобы показать мои выводы. Я протестировал 5 секунд захвата на Sony IMX219 с разрешением 1920X1080:
- PiCamera Видео: 146 кадров при 28,81 кадр / с Размер файла: 75 КБ
- PiCamera Stills: 8 кадров при 1.78fps Размер файла: 12.3 МБ
- OpenCV VideoCapture: 14 кадров при 3.12fps Размер файла: 670KB
Во всех трех случаях я пытался оптимизировать, не записывая на диск и просто записывая в память, чтобы исключить дисковый ввод-вывод.
есть другая настройка в OpenCV, которую я должен использовать, как будто это похоже на то, что делает PiCamera?
@ MarkSetchell, Настройка CAP_PROP_FPS, похоже, не имеет никакого эффекта.
@ MarkSetchell, Запуск opencv первым не делает ' не имеет значения. Я заметил это в системе, в которой даже не было установлено picamera. Однако пример сценария был обновлен.
@ MarkSetchell, cv2.getBuildInformation ()
@ MarkSetchell, если я включаю создание файла, кадры фотокамеры больше, чем opencv. Я перечислил размеры файлов выше
Означает ли это, что bcm2835_v4l2 загружен, но не используется? lsmod | grep
Module Size Used by
bcm2835_v4l2 45056 0
cm2835_v4l2 45056 0
v4l2_mem2mem 24576 1 bcm2835_codec
bcm2835_mmal_vchiq 32768 2 bcm2835_codec,bcm2835_v4l2
v4l2_common 16384 1 bcm2835_v4l2
videobuf2_vmalloc 16384 1 bcm2835_v4l2
videobuf2_v4l2 24576 3 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem
videobuf2_common 45056 4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
videodev 200704 6 bcm2835_codec,v4l2_common,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf 2_v4l2 media 36864 3 bcm2835_codec,videodev,v4l2_mem2mem