在另一个功能中使用相机时从网络摄像头拍摄快照

时间:2014-05-13 03:14:44

标签: 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 or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT

图像未保存甚至被捕获

如何拍摄此快照而不停止相机检测汽车?我可以使用什么命令来停止相机拍摄然后返回其主要功能?

1 个答案:

答案 0 :(得分:1)

如果我是你,我会让拍摄的照片成为一个单独的模块,然后使用互斥锁将汽车检测模块和快照模块调用到第一个模块。您不能有两个独立的实体来控制相同的硬件。