如何在raspberry pi的opencv中指定视频端口而不是静态端口?

2024-05-16 11:50:21 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用PiCamera时,我会捕获静态或视频They describe这两者之间有区别。我发现连续拍摄时,静像的速度较慢。视频是一种更快的帧速率

当我在OpenCV中使用VideoCapture时,它似乎以类似的速率连续拍摄静态照片。我有一个example python script来展示我的发现。我在分辨率为1920X1080的索尼IMX219上测试了5秒的捕获:

  • PiCamera视频:146帧28.81fps文件大小:75KB
  • PiCamera剧照:8帧,每秒1.78fps文件大小:12.3MB
  • OpenCV视频捕获:以3.12fps的速度拍摄14帧文件大小:670KB

在这三种情况下,我都试图通过不写入磁盘而只是在内存中捕获来排除磁盘I/O来进行优化

OpenCV中是否有其他设置我应该像PiCamera那样使用

@MarkSetchell,设置CAP_PROP_FPS似乎没有效果

@MarkSetchell,先运行opencv没有什么区别。我在一个甚至没有安装picamera的系统上注意到了这一点。不过,示例脚本已经更新

@MarkSetchell,cv2.getBuildInformation()

@MarkSetchell,如果我启用文件创建,picamera剧照比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

Tags: 视频速率静态commonopencv速度codecfps