python opencv 使用

img


运用usb摄像头读取视频帧 为什么报错找不到ret啊 这个不就是布尔值吗 为什么会找不到 有没有解决方法

9行和7行位置不对
第9行才得到ret这个变量,怎么第7行就用了,第7行前面没有ret,所以报错未定义

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7727195
  • 这篇博客也不错, 你可以看下python中使用opencv无法打开usb摄像头的问题
  • 除此之外, 这篇博客: python opencv 打开USB相机并设置一些参数中的 打开多个相机 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • # conding=utf-8
    import cv2
    import time
    import numpy as np
    
    class Camera:
        def __init__(self):
            self.image = None
    
        def getFrame(self, index):
            capture = cv2.VideoCapture(index)
            capture.set(3,800)
            capture.set(4,600)
            #capture.set(16, -5)
            capture.set(cv2.CAP_PROP_EXPOSURE, -7)
            #capture.set(cv2.CAP_PROP_FPS, 5)
    
            if capture.isOpened()!= True:
                print("打开摄像头失败")
                return
            frameNum = 0
            while(frameNum < 5):
                ret, frame = capture.read()
                frameNum += 1
    
            if ret == False:
                print("获取图像失败")
                return
            capture.release()
            fr = frame[10:590, 150:700]
            fr = np.rot90(fr,-1)
            img = cv2.resize(fr,(640,480))
            
            return img
    
        def saveImage(self, path):
    
    
    
    
    if __name__ == '__main__':
        cameraNum = 4
        cameras = [Camera() for i in range(cameraNum)]
        frame0 = cameras[0].getFrame(0)
        cv2.imshow("frame0", frame0)
    
        cv2.waitKey()
        #fileName = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
        #print(fileName)
        #print("D:/code/PycharmProjects/Autoselling/" + fileName + "{0}.jpg")
        #cv2.imwrite("D:/code/PycharmProjects/Autoselling/" + fileName + "{0}.jpg", frame0)