Python 在其他功能中使用摄像头时从网络摄像头拍摄快照

Python 在其他功能中使用摄像头时从网络摄像头拍摄快照,python,linux,opencv,image-processing,camera,Python,Linux,Opencv,Image Processing,Camera,我使用Python、Opencv和普通usb网络摄像头,全天候使用摄像头检测汽车。 为了拍摄快照,我制作了一个函数在需要时调用它 def SendPic () : capture = cv.CaptureFromCAM(0) img = cv.QueryFrame(capture) cv.SaveImage('pic.jpg', img) 单独使用时效果很好,但在代码中使用时会出现此错误 libv4l1: error setting pixformat: Device

我使用Python、Opencv和普通usb网络摄像头,全天候使用摄像头检测汽车。 为了拍摄快照,我制作了一个函数在需要时调用它

def SendPic () :
    capture = cv.CaptureFromCAM(0)
    img = cv.QueryFrame(capture)
    cv.SaveImage('pic.jpg', img)
单独使用时效果很好,但在代码中使用时会出现此错误

libv4l1: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT
而且图像不会被保存,甚至不会被捕获


如何在不停止摄像头检测车辆的情况下拍摄此快照?我可以使用什么命令停止相机拍摄,然后返回其主要功能?

如果我是你,我会将拍摄部分设置为单独的模块,并使用互斥锁将车辆检测模块和快照模块调用到第一个模块。不能有两个单独的实体控制同一个硬件部件。

为什么要使用
cv
?请使用opencv的更新版本!那么,除了上述函数之外,您还运行了一个捕获循环?(是的,请转到cv2,旧的cv版本在即将发布的opencv版本中不受支持)也许它只需要在现有的捕获循环中设置一个标志:“现在保存此图像”。我想设置一个标志可能会有所帮助,谢谢