1, cv2.VideoCapture()函数
//1、cv2.VideoCapture()函数:
cap = cv2.VideoCapture(0)//VideoCapture()中参数是0,表示打开笔记本的内置摄像头。
cap = cv2.VideoCapture("…/1.avi")//VideoCapture("…/1.avi"),表示参数是视频文件路径则打开视频。
cap=cv2.VideoCapture(Test_Video_Name)
2、cap.isOpened()函数:
返回true表示成功,false表示不成功
3、cap.set() cap.get()
// 摄像头参数设置,将cv2.CAP_PROP_POS_FRAMES设置为1,使用该参数的方法如下cap.get(cv2.CAP_PROP_POS_FRAMES)
cap.set(cv2.CAP_PROP_POS_FRAMES, 1)
//参考链接:https://blog.youkuaiyun.com/leon_zeng0/article/details/102791988
4、ret,frame= cap.read()按帧读取视频
// ret,frame= cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值: 参数ret 为True 或者False,代表有没有读取到图片 第二个参数frame表示截取到一帧的图片,是个三维矩阵;
ret, img = cap.read()
cv2.imshow("input", img)
5、cv2.waitKey()函数
参数是1,表示延时1ms切换到下一帧图像,参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。
参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停。
esc键对应的ASCII码是27,即当按esc键是if条件句成立。
cv.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。该函数等待任何键盘事件指定的毫秒
cv2.waitKey(delay):
delay≤0:一直等待按键;
delay取正整数:等待按键的时间(ms)。
该函数的返回值:
等待期间有按键:返回按键的ASCII码(比如:Esc的ASCII码为27);
等待期间没有按键:返回 值为-1;
需要注意的是:如果使用的是64位的计算机,cv.waitKey()函数的返回值与0xff按位相与操作,取其低八位,再与27(Esc的ASCII码为27)比较,或者这样cv2.waitKey(10) & 0xff == ord(‘q’),ord函数是取其ASCII编码,当然换成其他的字符也行只要ASCII码对应就行。
6、cap.release()与destroyAllWindows()函数:
cap.release()释放视频,调用destroyAllWindows()关闭所有图像窗口。
7、在指定图片上画一个矩形,返回操作后的图片
cv2.rectangle(img, start_point, end_point, color, thickness)
img:要在其上绘制矩形的图像
start_point:左上角坐标
end_point:右上角坐标
color:要绘制的矩形的边界线的颜色,对于BGR,我们传入一个元组,例如:(255,0,0)为蓝色
thickness:矩形边框线的粗细像素,厚度-1像素将以指定的颜色填充矩形形状