python opencv 内存泄露_Python OpenCV中的VideoCapture内存泄漏

在使用OpenCV进行多摄像头切换拍摄时遇到内存泄漏问题,大约40次切换后出现错误提示:libv4l2: error allocating conversion buffer 和 HIGHGUI ERROR。错误可能与VIDIOC_QUERYMENU: Invalid argument相关,且在尝试显示图像时OpenCV报错。代码示例显示,当连接摄像头并尝试显示图像时,系统无法分配内存。问题在于如何解决这些OpenCV与V4L2相关的错误和内存管理问题。
摘要由CSDN通过智能技术生成

我使用3个摄像头偶尔在OpenCV中拍摄快照。它们连接到同一个usb总线上,由于usb带宽限制,这不允许所有3个连接同时进行(降低分辨率最多允许2个同时连接,我没有更多的usb总线)。在

正因为如此,每当我想拍快照时,我都要切换摄像头连接,但这会导致大约40次切换后内存泄漏。在

这是我得到的错误:libv4l2: error allocating conversion buffer

mmap: Cannot allocate memory

munmap: Invalid argument

munmap: Invalid argument

munmap: Invalid argument

munmap: Invalid argument

Unable to stop the stream.: Bad file descriptor

munmap: Invalid argument

munmap: Invalid argument

munmap: Invalid argument

munmap: Invalid argument

libv4l1: error allocating v4l1 buffer: Cannot allocate memory

HIGHGUI ERROR: V4L: Mapping Memmory from video source error: Invalid argument

HIGHGUI ERROR: V4L: Initial Capture Error: Unable to load initial memory buffers.

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or

unsupported array type) in cvGetMat, file

/build/buildd/opencv-2.3.1/modules/core/src/array.cpp, line 2482

Traceback (most recent call last):

File "/home/irobot/project/test.py", line 7, in

cv2.imshow('cam', img)

cv2.error: /build/buildd/opencv-2.3.1/modules/core/src/array.cpp:2482:

error: (-206) Unrecognized or unsupported array type in function cvGetMat

这是一段生成此错误的简单代码:

^{pr2}$

也许值得注意的是,我每次连接相机时都会遇到VIDIOC_QUERYMENU: Invalid argument错误,尽管我可以继续使用它。在

作为一些额外的信息,这是我的v4l2-ctl -V输出的网络摄像头:~$ v4l2-ctl -V

Format Video Capture:

Width/Height : 640/480

Pixel Format : 'YUYV'

Field : None

Bytes per Line: 1280

Size Image : 614400

Colorspace : SRGB

是什么导致了这些错误?我如何修复它们?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值