Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么cv2.VideoCapture()返回RPi摄像头模块上的重复帧序列(使用uv4l)_Python_Opencv - Fatal编程技术网

Python 为什么cv2.VideoCapture()返回RPi摄像头模块上的重复帧序列(使用uv4l)

Python 为什么cv2.VideoCapture()返回RPi摄像头模块上的重复帧序列(使用uv4l),python,opencv,Python,Opencv,我正在使用一个树莓PI&RPi摄像头模块为一个跟线机器人捕捉视频。我正在使用Opencv函数&uv4l驱动程序。我的问题是,我从cv2.VideoCapture返回的帧是4个相同帧的序列,导致低帧速率约为5 fps。还有其他人遇到过这个问题吗? 以下是用于捕获视频的代码: def open_camera(cam_id = 0): cap = cv2.VideoCapture(cam_id) cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 2

我正在使用一个树莓PI&RPi摄像头模块为一个跟线机器人捕捉视频。我正在使用Opencv函数&uv4l驱动程序。我的问题是,我从cv2.VideoCapture返回的帧是4个相同帧的序列,导致低帧速率约为5 fps。还有其他人遇到过这个问题吗? 以下是用于捕获视频的代码:

 def open_camera(cam_id = 0):
     cap = cv2.VideoCapture(cam_id)
     cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 240);
     cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 320);
     cap.set(cv2.cv.CV_CAP_PROP_FPS, 30);


     return cap

def get_frame(device):
     ret, img = device.read()
     if (ret == False): #failed to capture
         print >> sys.stderr, "Error capturing from vid dev"
         return None
     return img



def run(wh,sh,wh2,sh2): 
    find_colour(wh,sh,wh2,sh2)

    dev = open_camera(0)    

    while True:

        img = get_frame(dev) # get frame from cam
        if img is not None:# if possible to get imag
           #program code
        else: #if failed to cap
            #print 'failed to cap'
            controller.forward(128)#stop
            break


return()

当为True时,您是否缺少以下块的缩进:?@Antonio,对不起Antonio,缩进只是将代码粘贴到“已更正”中的一个错误。在实际的程序中,这不是问题。如果注释掉行cap.set…CV\u cap\u PROP\u FPS。。。让它以自然帧率运行?在C++ OpenCV中,如果有一个帧,如果您的程序比帧速器快,则GETHyFrimar等效项将返回最新的帧,并阻止直到新的帧出现为止。我认为python也是如此。迈克,你是个传奇。。问题解决了伙计们,这个问题还没有解决,仍然会遇到同样的问题