import cv2
cap = cv2.VideoCapture(0)#捕获视频,0是第一个摄像头一般为内置摄像头,
#也可以是视频文件路径cv2.VideoCapture('video.mp4')
#cap可能不能成功的初始化摄像头设备,可以用cap.isOpened()来检查是否成功初始化了,如果返回值是True就没有问题
#可以用cap.get(propld)来获取视频的一些参数信息,函数的参数propld可以是0~18之间的整数,每一个数都代表视频的一个属性
#如,cap.get(3)和cap.get(4)来查看每一帧的宽和高
#可以使用cap.set(propld,value)来修改一些值,value就是想要设置成的新值,如cap.set(3,320)将宽设置成320
while True:
ret,frame = cap.read()#按帧捕获视频,ret是bool值,读取顺利的话是True,frame是读取到的视频帧
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#将RGB图转化为灰度图cv2.cvtColor
cv2.imshow('frame',gray)#显示图片,第一个参数是显示窗口名称,第二个参数是要现实的图片
cv2.waitKey(0)#按键输入等待,返回值是按键输入数的ASCII值,参数是0表示无限等待按键输入,按键是正数 表示等待相应ms后若无按键输入则返回-1
if cv2.waitKey(1) & 0xFF == ord('q'):#ord将字符转换成ASCII值
break#键盘输入q时退出循环,&0XFF是取后八位,因为不同时刻不同情况下同一按键返回的ASCII可能不同,但后八位一定固定,这样是为了取后八位防止出现bug
cap.release()#释放硬件资源,如果在这之前再创建另一个实例cap2 = cv2.VideoCapture(0)因为还没有释放相机设备资源会引发错误
cv2.destroyAllWindows()#关闭所有窗口
01-19
5889
10-11
804
02-25
3407