如何使用opencv调用电脑摄像头

import cv2 as cv
def video_demo():
#0是代表摄像头编号,只有一个的话默认为0
    capture=cv.VideoCapture(0) 
    if not cap.isOpened():
        print("Cannot open camera")
        exit()
    while(True):
        ref,frame=capture.read()
 
        cv.imshow("1",frame)
#等待30ms显示图像,若过程中按“Esc”退出
        c= cv.waitKey(30) & 0xff 
        if c==27:
            capture.release()
            break     
video_demo()
cv.destroyAllWindows()

cv.VideoCapture(0):读取视频,当输入为0时默认打开的是电脑摄像头,也可以如输入视频文件的路径。
capture.read(): 返回两个值refframe,前者为TrueFalse表示有没有读取到图片,后者参数表示截取到的每一张图片。
cv.inshow('name', frame):显示图片,没有返回值,第一个参数为窗口的名称,第二个参数为要显示的图片。
cv.waitKey(30) & 0xff: cv.waitKey(delay)函数如果delay为0就没有返回值,如果delay大于0,如果有按键就返回按键值,如果没有按键就在delay秒后返回-1,0xff的ASCII码为1111 1111,任何数与它&操作都等于它本身。Esc按键的ASCII码为27,所以当c==27时,摄像头释放。更多关于函数的解释可以参考博客。(我有点没明白的是,如果没有按键返回-1与0xff进行&运算会是什么结果,我试了一下在30s前后按Esc都没有区别,30s后摄像头也不会自动释放,所以不太明白这个delay30s的用意是在哪里。)
cv.destroyAllWindows(): 清除所有方框界面

本文原载于我的简书博客

你可能感兴趣的:(图像处理,python,opencv,计算机视觉)