python+opencv调用摄像头,本站原封不动拷贝的例程,报错未定义变量,究竟是为什么?

import cv2
import numpy as np
def video_demo():  
    cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)    
while(True):
    ret,frame = cap.read()
    frame = cv2.flip(frame, 1)
    cv2.imshow("capture", frame)
    cv2.imshow("video", frame)
    c = cv2.waitKey(50)
    if c == 27:
        break
video_demo()
cv2.destroyAllWindows()

runfile('C:/Users/Administrator/.spyder-py3/temp.py', wdir='C:/Users/Administrator/.spyder-py3')
Traceback (most recent call last):

  File "C:\Users\Administrator\.spyder-py3\temp.py", line 10, in <module>
    ret,frame = cap.read()

NameError: name 'cap' is not defined

import cv2
import numpy as np
def video_demo():  
    cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)    
    while(True):
        ret,frame = cap.read()
        frame = cv2.flip(frame, 1)
        cv2.imshow("capture", frame)
        cv2.imshow("video", frame)
        c = cv2.waitKey(50)
        if c == 27:
            break
video_demo()
cv2.destroyAllWindows()

你试一下这样可以不,python严格区分缩进。

延时等待一下,再执行下面的代码。

cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)

 

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632