Python Opencv 之 简单的视频裁剪功能的实现

目录

Python Opencv 之 简单的视频裁剪功能的实现

一、简单介绍

二、实现原理

三、注意实现

四、效果预览

五、实现步骤

这里实现截取视频的左半部分为例

六、关键代码

七、python 推荐可以使用 Moviepy 对比一下


一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。
本节介绍,通过使用 opencv 和 tesseract 进行简单的文字识别。

二、实现原理

1、读取视频

2、size 设置视频的裁剪大小

3、创建 VideoWriter ,写入 指定区域的视频数据

三、注意实现

1、注意 size 设置和 frame[0:x, 0:y] 要有一致性,不然可能显示、保存不了视频

2、frame 设置,导致这个方法好像有局限性

3、使用 python 3.6.7,opencv-python 为 4.2.0.32

四、效果预览

五、实现步骤

这里实现截取视频的左半部分为例

1、打开 Pycharm,新建一个工程

2、这里是选择 python 3.6,安装 opencv ,创建的工程

3、选中工程名称,右键创建一个 python 脚本

4、编写脚本,实现读取指定视频,进行半屏裁剪,并保存

5、运行脚本,效果如上图

六、关键代码

import cv2 as cvdef main():# 导入视频文件,参数:0 自带摄像头,1 USB摄像头,为文件名时读取视频文件video_caputre = cv.VideoCapture(r"D:\CloudMusic\MV\排骨教主 - 入画.mp4")# 获取读入视频的参数fps = video_caputre.get(cv.CAP_PROP_FPS)width = video_caputre.get(cv.CAP_PROP_FRAME_WIDTH)height = video_caputre.get(cv.CAP_PROP_FRAME_HEIGHT)print("fps:", fps)print("width:", width)print("height:", height)# 定义截取尺寸,后面定义的每帧的h和w要于此一致,否则视频无法播放# 注意 这里是高宽 (height, width)size = (int(height), int(width / 2))# 创建视频写入对象videp_write = cv.VideoWriter("videoFrameTarget.avi", cv.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, size)# 读取视频帧,然后写入文件并在窗口显示success, frame_src = video_caputre.read()while success and not cv.waitKey(1) == 27: #读完退出或者按下 esc 退出# [width, height] 要与上面定义的size参数一致,注意参数的位置frame_target = frame_src[0:int(width/2), 0:int(height)]# 写入视频文件videp_write.write(frame_target)# 显示裁剪的视频和原视频cv.imshow("video", frame_target)cv.imshow("Video_src", frame_src)# 不断读取success, frame_src = video_caputre.read()print("视频裁剪完成")# 销毁窗口,释放资源cv.destroyWindow("video")cv.destroyWindow("Video_src")video_caputre.release()if __name__=="__main__":main()

七、python 推荐可以使用 Moviepy 对比一下

Python Opencv 之 简单的视频裁剪功能的实现相关推荐

  1. opencv自动裁切_荐Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 一.简单介绍 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随 ...

  2. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  3. JavaScript css3模拟简单的视频弹幕功能

    最近相对比较空闲,想写一些东西写着玩.就尝试写了一个demo模拟了最简单的视频弹幕功能~~. 思路: 设置一个<div>和所播放的video的大小一致,把这个div标签蒙在video上面用 ...

  4. 【Python+OpenCV 图像的缩放和裁剪】

    Python+OpenCV 图像的缩放和裁剪 代码部分 实现效果 代码部分 import cv2 import numpy as npimg = cv2.imread("Photos/1.b ...

  5. 【python/qt】Python+Qt实现简单的视频监控界面

    DATE: 2018.12.9 1.前言 这个界面是之前读研时候学习QT时写的一个简单的界面,主要实现了人脸检测部分的功能,比较简单. 从今年3月份就开始写这个视频监控的功能,一直拖到了11月份.找工 ...

  6. python opencv 绘制简单图形

    09-python opencv 绘制简单图形 09-python opencv 绘制简单图形 概述 实现过程 引用与创建空图 绘制直线 绘制矩形 绘制圆 绘制椭圆 添加文字 显示图像 源代码 运行结 ...

  7. python opencv设置不同的视频编解码器参数

    环境:opencv 3.4.0 python 3.5.2读取视频 #环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture( ...

  8. python+opencv最简单的人脸识别入门

    0前置操作 安装python(最新3.10即可) 安装pycharm(社区版即可) 安装opencv-python(cmd输入pip install opencv-python即可,嫌慢用国内镜像也可 ...

  9. python opencv如何读取本地视频并显示 cv2.VideoCapture()

    import cv2cap = cv2.VideoCapture('Video_2020-01-06_101858.wmv')while cap.isOpened():ret, frame = cap ...

最新文章

  1. Jquery循环截取字符串(多出的字符串处理成...)
  2. 模板 - AC自动机
  3. ITK:相同类型的多个输入
  4. 从硬盘上把数据传回到计算机称为什么,计算机基础知识 第一章 习题三
  5. java中final使用
  6. 前端面试题vue-element汇总
  7. jenkins重启 linux_在Linux中,Jenkins无法启动
  8. c++ 多线程 垃圾回收器_并行并发CMS垃圾回收器:-XX:+UseConcMarkSweepGC
  9. 英雄联盟欧洲赛区_Linux命令简介,欧盟的开源数学工具箱以及更多新闻
  10. 神器 Nginx 的学习手册(建议收藏吃灰)
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
  12. 雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建链接按钮
  13. Windows 7(server 2008) 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
  14. 线性调频信号(chirp signal)
  15. aardio利用鼠标钩子响应文件拖动过程(一)
  16. 电脑前面板耳机没声音
  17. RV32I控制转移指令的偏移量计算问题
  18. 如何用arcgis修改栅格文件的波段数?
  19. 所见即所得的 markdown 编辑器:Typora
  20. NTC热敏电阻温度计算公式

热门文章

  1. 面向对象的三个基本特征
  2. 【备忘】【不定时更新】那些有用有趣的网站君们~~
  3. (七)Python绘图基础:Matplotlib绘图
  4. 4G模块(BC76)
  5. 【开源许可协议】常见开源许可协议的核心内容(思维导图版本)
  6. Ubuntu16.04 NVIDIA显卡驱动卸载与安装
  7. 化繁为简——分解复杂的SQL语句
  8. Hadoop面试连环炮
  9. 刷脸支付新技术的蔓延能出乎我们的意料
  10. 学习笔记二:IBIS模型编辑报错纠正