python-opencv-视频的读取与分解
Posted 天子骄龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-opencv-视频的读取与分解相关的知识,希望对你有一定的参考价值。
OpenCV中提供了一个基本的视频操作类VideoCaputre,它是OpenCV用来通过摄像头、视频文件或图像序列来获取及操作视频的类。VideoCaputre有两种读取视频的方法,分别是通过摄像头读取与通过视频文件读取。
通过打开摄像头捕捉视频 :
import cv2 #获取一个视频并打开 cap=cv2.VideoCapture(0) #打开摄像头并创建摄像头对象 #其中0表示打开内置摄像头,1表示打开外接摄像头 if cap.isOpened(): #VideoCaputre对象是否成功打开 print(\'已经打开了摄像头捕捉视频\') else: print(\'打开摄像头失败\')
通过打开视频文件读取视频:
import cv2 #获取一个视频并打开 cap=cv2.VideoCapture(\'1.mp4\') if cap.isOpened(): #VideoCaputre对象是否成功打开 print(\'已经打开了视频文件\') else: print(\'视频文件打开失败\')
视频的分解:
视频其实就是由连续的图像画面组成的。当连续的图像变化每秒超过24帧画面以上时,根据视觉暂留原理,人眼就无法识别是否是静态画面了,这样平滑连续的视觉效果看起来就像是视频了。
帧率是以帧称为单位的位图图像连续出现在显示器上的频率,通俗来讲,就是1秒钟的帧(fps),也就是1秒钟展示的图片数量。
import cv2 #获取一个视频并打开 cap=cv2.VideoCapture(\'1.mp4\') if cap.isOpened(): #VideoCaputre对象是否成功打开 print(\'已经打开了视频文件\') fps = cap.get(cv2.CAP_PROP_FPS) # 返回视频的fps--帧率 width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) # 返回视频的宽 height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT) # 返回视频的高 print(\'fps:\', fps,\'width:\',width,\'height:\',height) i=0 while 1: if i==15: print(\'保存了视频的前15帧图像,保存结束\') break else: i=i+1 ret, frame = cap.read() # 读取一帧视频 # ret 读取了数据就返回True,没有读取数据(已到尾部)就返回False # frame 返回读取的视频数据--一帧数据 file_name=\'.\\\\aa\\\\img\'+str(i)+\'.jpg\' cv2.imwrite(file_name, frame) else: print(\'视频文件打开失败\')
以上是关于python-opencv-视频的读取与分解的主要内容,如果未能解决你的问题,请参考以下文章