0

当我使用 PiCamera 时,我会捕捉静止图像或视频。他们描述了两者之间存在差异。我发现连续拍摄时静止图像速度较慢。视频是更快的帧速率。

当我在 OpenCV 中使用 VideoCapture 时,它​​似乎以相似的连续静止速率进行捕获。我有一个示例 python 脚本来展示我的发现。我在索尼 IMX219 上以 1920X1080 的分辨率测试了 5 秒的捕捉时间:

  • PiCamera 视频:146 帧,28.81fps文件大小:75KB
  • PiCamera Stills:8 帧,1.78fps文件大小:12.3 MB
  • OpenCV VideoCapture:14 帧,3.12fps文件大小: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
4

0 回答 0