cv2读取视频-并保存图像或视频

这篇具有很好参考价值的文章主要介绍了cv2读取视频-并保存图像或视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


title: cv2读取视频,并保存图像或视频 date: 2022-07-02 18:10:24 tags: opencv

@TOC文章来源地址https://www.toymoban.com/news/detail-512780.html

cv2读取视频,并保存图像或视频

cv2读取视频的一般流程

  1. 获取视频 cap = cv2.VideoCapture()
  2. 判断获取的视频是否成功,成功读取视频对象则返回True。 cap.isOpened()
  3. 按帧读取 ret, frame = cap.read()
  4. 展示图像 cv2.waitKey(1)

读取本地文件视频并展示

from turtle import color
import numpy as np
import cv2 as cv
import cv2


def read_video_show(videoName):
    '''
    opencv 读取视频

    cv2.VideoCapture(filename) #读取本地视频
    cv2.VideoCapture(index) #获取摄像头
    '''

    #1. 读取视频
    cap = cv2.VideoCapture(videoName) #若参数为0, 则是本地摄像头
    
    #2. 判断读的视频流是否成功
    while cap.isOpened(): #当成功时
        
        #3. 获取每帧图像
        ret, frame = cap.read() #若获取成功,ret为True,否则为False;frame是图像
        
        if ret: #成功获取图像
            cv2.imshow('frame', frame) #两个参数,一个是展示画面的名字,一个是像素内容
            key = cv2.waitKey(25) # 停留25ms,当为0的时候则堵塞在第一帧不会继续下去
            if key == ord(' ') or key == ord('q'): #当键入空格或者q时,则退出while循环
                break

    cap.release() #释放视频
    cv2.destroyAllWindows() #释放所有显示图像的窗口

def read_video_save(videoName):

    '''
    opencv 保存视频

    cv2.VideoWriter(filename, fourcc, fps, frameSize, [isColor])
    '''

    cap = cv2.VideoCapture(videoName)

    #视频属性
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) #获取原视频的宽
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) #获取原视频的搞
    fps = int(cap.get(cv2.CAP_PROP_FPS)) #帧率
    fourcc = int(cap.get(cv2.CAP_PROP_FOURCC)) #视频的编码

    #视频对象的输出
    out = cv2.VideoWriter('video_output.avi', fourcc, 20.0, (width, height))
    # out = cv2.VideoWriter('out.avi', fourcc, 20.0, (width, height))
    
    while cap.isOpened():
        ret, frame = cap.read()
        cv2.imshow('fame', frame)
        key = cv2.waitKey(25)

        out.write(frame) #写入视频

        if key == ord('q'):
            
            break
    cap.release() #释放视频
    out.release()
    cv2.destroyAllWindows() #释放所有的显示窗口

def read_video_write(videoName):
    '''
    读取视频并保存截帧

    cv2.imwrite(filename, frame)
    '''
    cap = cv2.VideoCapture(videoName)

    #视频属性
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) #获取原视频的宽
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) #获取原视频的搞
    fps = int(cap.get(cv2.CAP_PROP_FPS)) #帧率
    fourcc = int(cap.get(cv2.CAP_PROP_FOURCC)) #视频的编码

    n, i = 0, 0 #总的帧数,保存的第i张图片
    
    while cap.isOpened():

        ret, frame = cap.read()
        
        if ret:
            n += 1
            if n % fps == 0:
                i += 1
                filename = '{:0>4}.jpg'.format(str(i))
               
                cv2.imwrite(filename, frame) #存入快照
                cv2.imshow('frame', frame)
                key = cv2.waitKey(25)
                if key == ord('q'):
                    break
    cap.release()
    cv2.destroyAllWindows()

到了这里,关于cv2读取视频-并保存图像或视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python使用CV2库捕获和保存摄像头视频

    关于cv2库的安装和使用基础可参见https://blog.csdn.net/cnds123/article/details/126547307 特别提示:CV2指的是OpenCV2(Open Source Computer Vision Library),安装的时候是 opencv_python,但在导入的时候采用 import cv2。 学习本文需要你的计算机有摄像头,笔记本一般内置有摄像头,若是台式机可以连

    2024年02月16日
    浏览(42)
  • 使用OpenCV的cv2.imread函数读取图像介绍

    在计算机视觉和图像处理应用中,读取图像是一个常见的操作。OpenCV是一个广泛使用的图像处理库,它提供了 cv2.imread 函数,用于读取图像。本文将详细介绍如何使用 cv2.imread 函数,包括参数和用法。 首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装OpenCV(如果尚

    2024年02月05日
    浏览(75)
  • opencv-python[cv2]读取中文路径图像

    随着AI人工智能的不断发展,图像处理这门技术也越来越重要,很多学校本科都开启了图像处理这门课程,学习图像处理开发,自然就绕不开opencv-python[ cv2 ]这个由intel主导的开源库。 cv2 是指OpenCV的Python接口库。 OpenCV (Open Source Computer Vision Library)是一个开源的计算机视觉库

    2024年02月06日
    浏览(74)
  • Python使用CV2库捕获、播放和保存摄像头视频

    关于cv2库的安装和使用基础可参见https://blog.csdn.net/cnds123/article/details/126547307 特别提示:CV2指的是OpenCV2(Open Source Computer Vision Library),安装的时候是 opencv_python,但在导入的时候采用 import cv2。 学习本文需要你的计算机有摄像头,笔记本一般内置有摄像头,若是台式机可以连

    2024年02月03日
    浏览(62)
  • 关于opencv中cv2.imread函数读取的图像shape问题

    图像坐标系是(w,h),w为x轴,h为y轴,(x,y) 但opencv读出来的数组却正好相反,是(h,w,3),(y,x,3) 所以这里会有一个转换 实则转换为图像坐标系时,要转置一下,或者image.shape[::-1] 切片操作 [start,endstep],其中:- start: 表示开始的下标,如果省略默认为 0 - end: 表示结束的下标(不包含

    2024年02月12日
    浏览(41)
  • opencv视频截取每一帧并保存为图片python代码CV2实现练习

    当涉及到视频处理时,Python中的OpenCV库提供了强大的功能,可以方便地从视频中截取每一帧并将其保存为图片。这是一个很有趣的练习,可以让你更深入地了解图像处理和多媒体操作。 使用OpenCV库,你可以轻松地读取视频文件,并在循环中逐帧读取视频的每一帧。随后,你可

    2024年02月12日
    浏览(55)
  • python 图像处理——关于plt.imshow显示cv2.imread读取的图像有“色差”、“发蓝”问题的解决方法

    使用cv2.imread()读取图像时,默认彩色图像的三通道顺序为B、G、R,这与我们所熟知的RGB中的R通道和B通道正好互换位置了。 而使用plt.imshow()函数却默认显示图像的通道顺序为R、G、B,导致图像出现色差发蓝。 彩色图像出现色差代码: 运行结果如图1-1所示,其颜色偏蓝,怪吓

    2024年02月01日
    浏览(47)
  • opencv 将多帧图像合成为视频 cv2.VideoWriter()

    将文件夹下有时间戳或者有序的 *.jpg 图像合成为一个 mp4 格式的视频。 附加:加进度条看合成进度。 以上示例合成视频为 mp4 格式,如需合成其它视频格式,可修改 cv2.VideoWriter_fourcc() 参数。请自行查询相关参数。

    2024年02月11日
    浏览(43)
  • Python中使用OpenCV读取灰度图像时遇到的错误:module ‘cv2‘ has no attribute ‘CV_LOAD_IMAGE_GRAYSCA...

    Python中使用OpenCV读取灰度图像时遇到的错误:module ‘cv2’ has no attribute ‘CV_LOAD_IMAGE_GRAYSCALE’。 OpenCV是一款广泛应用于计算机视觉领域的开源计算机视觉库,它可以实现图像处理、分析、识别等功能。而在使用OpenCV读取灰度图像时,可能会出现上述错误。 这个错误发生的原

    2024年02月16日
    浏览(62)
  • cv2 保存图片RGB BGR

    原图: cv2.imrite之后的图: 可以看到前后图片一样,我们都知道cv2 .imread读取进来的图像是BGR格式,而cv2.imrite保存的时候也需要BGR格式,这样保证颜色通道顺序一致。 通常情况下,我们都需要转换成RGB的格式进行后续处理,看下面的例子 而保存的图像却是: 可以看到颜色前

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包