视频的读取

学完图片的基本操作,来学一下视频的读取

 

首先还是导入常用的包

1 import cv2
2 import matplotlib.pyplot as plt
3 import numpy as np
4 %matplotlib inline

 

然后用VideoCapture()来读取视频

1 vc=cv2.VideoCapture('test.mp4')

 

先检测视频是否正常打开

1 if vc.isOpened():
2     open,frame=vc.read()
3 else:
4     open=False

read()是来一帧一帧地读取视频中的图片

返回的第一个参数open是bool值,用来表示视频是否正常打开

第二个参数frame保存的是每一帧的图片

 

如果视频能正常打开,则对每一帧图片进行处理(转化为灰度图)

 1 while open:
 2     ret,frame=vc.read()
 3     if frame is None:
 4         break
 5     if ret==True:
 6         gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
 7         cv2.imshow('vedio',gray)
 8         if cv2.waitKey(10) & 0xFF==27:  #27代表ESC键
 9             break;
10 vc.release()
11 cv2.destroyAllWindows()

注:一开始将cvtColor()函数处的语句用如下语句代替了:

  gray=cv2.imread(frame,cv2.IMREAD_GRAYSCALE);

这里出现了错误,因为我已经在循环中用read()一帧一帧地读进来了,不能再用imread()去读取,这里要做的只是要将颜色做一个转变

 

那么就要说到imread()和cvtColor()的区别了:

  imread()是在将图片读取进来的过程中进行灰度图的转换,适用于还没读取图片的时候

  cvtColor()是图片已经读取进来了,只是要做一个颜色空间的转换

 

posted @ 2019-10-15 17:40  lucky99  阅读(378)  评论(0编辑  收藏  举报