zoukankan      html  css  js  c++  java
  • 视频的读取

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

    首先还是导入常用的包

    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()是图片已经读取进来了,只是要做一个颜色空间的转换

  • 相关阅读:
    线性变换
    施密特正交化
    春有它的记忆,秋有它的情怀
    最美的动作其实只需要嘴角上扬-微笑
    pomotime_v1.7.2 番茄软件完全教程
    NGUI 之 不为人知的 NGUITools
    Unity3D 开发 之 加载Android应用的环境
    Unity3D 开发 之 JDK安装与环境变量配置
    Tesseract 对验证码的识别原理和实现步骤
    sizeof_and_strlen 的区别
  • 原文地址:https://www.cnblogs.com/program-ai-cv-ml-se-fighting/p/11679197.html
Copyright © 2011-2022 走看看