cap = cv2.VideoCapture(0) #参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为视频所在路径路径
cap.isOpened() #判断视频对象是否成功读取,成功读取视频对象返回True
ref, frame = cap.read() #按帧读取视频;返回值ref是布尔型,正确读取则返回True,读取失败或读取视频结尾则会返回False
key = cv2.waitKey(1) #等待键盘输入,参数1表示延时1ms切换到下一帧,参数为0表示显示当前帧,相当于暂停
fourcc = cv2.VideoWriter_fourcc() #创建视频流写入对象,VideoWriter_fourcc为视频编解码器 #保存格式 #cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’),MPEG-4编码,后缀为.mp4 #cv2.VideoWriter_fourcc(‘X’,‘2’,‘6’,‘4’),MPEG-4编码,后缀为.mp4 #cv2.VideoWriter_fourcc(‘I’, ‘4’, ‘2’, ‘0’),YUV编码类型,文件名后缀为.avi #cv2.VideoWriter_fourcc(‘P’, ‘I’, ‘M’, ‘I’),MPEG-1编码类型,后缀为.avi #cv2.VideoWriter_fourcc(‘X’, ‘V’, ‘I’, ‘D’),MPEG-4编码类型,后缀为.avi #cv2.VideoWriter_fourcc(‘T’, ‘H’, ‘E’, ‘O’),Ogg Vorbis,后缀为.ogv #cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’),Flash视频,后缀为.flv
out = cv2.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) # 写视频 #第一个参数是要保存的文件的路径 #fourcc 指定编码器 #fps 要保存的视频的帧率 #frameSize 要保存的文件的画面尺寸 #isColor 指示是黑白画面还是彩色的画面
cv2.cvtColor(src, code[, dst[, dstCn]]) #将图像从一种颜色空间转换为另一种颜色空间
#src:它是要更改其色彩空间的图像。 #code:它是色彩空间转换代码。 #dst:它是与src图像大小和深度相同的输出图像,它是一个可选参数。 #dstCn:它是目标图像中的频道数。如果参数为0,则通道数自动从src和代码得出,它是一个可选参数
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) #将frame从BGR转为RGB frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) #将frame从RGB转为BGR
cv2.putText()方法用于在任何图像上绘制文本字符串。 frame = cv2.putText(frame, “fps= %.2f” % fps, (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) #在图像中写入frame帧数
cv2.imshow() #在窗口中显示图像。该窗口和图像的原始大小自适应(自动调整到原始尺寸) cv2.imshow(“video”, frame) #第一个参数是一个窗口名称(也就是我们对话框的名称),它是一个字符串类型。第二个参数是我们的图像。您可以创建任意数量的窗口,但必须使用不同的窗口名称。
cv2.destroyAllWindows() # 关闭所有窗口
capture.release() #release()方法用于释放由调用线程获取的锁,以释放代码的关键部分。 释放锁后,其他一些线程可以获取该锁,等待其轮换使用该锁
|