Python Opencv 之 简单的视频裁剪功能的实现
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 之 简单的视频裁剪功能的实现相关推荐
- opencv自动裁切_荐Python Opencv 之 简单的视频裁剪功能的实现
Python Opencv 之 简单的视频裁剪功能的实现 目录 一.简单介绍 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随 ...
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- JavaScript css3模拟简单的视频弹幕功能
最近相对比较空闲,想写一些东西写着玩.就尝试写了一个demo模拟了最简单的视频弹幕功能~~. 思路: 设置一个<div>和所播放的video的大小一致,把这个div标签蒙在video上面用 ...
- 【Python+OpenCV 图像的缩放和裁剪】
Python+OpenCV 图像的缩放和裁剪 代码部分 实现效果 代码部分 import cv2 import numpy as npimg = cv2.imread("Photos/1.b ...
- 【python/qt】Python+Qt实现简单的视频监控界面
DATE: 2018.12.9 1.前言 这个界面是之前读研时候学习QT时写的一个简单的界面,主要实现了人脸检测部分的功能,比较简单. 从今年3月份就开始写这个视频监控的功能,一直拖到了11月份.找工 ...
- python opencv 绘制简单图形
09-python opencv 绘制简单图形 09-python opencv 绘制简单图形 概述 实现过程 引用与创建空图 绘制直线 绘制矩形 绘制圆 绘制椭圆 添加文字 显示图像 源代码 运行结 ...
- python opencv设置不同的视频编解码器参数
环境:opencv 3.4.0 python 3.5.2读取视频 #环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture( ...
- python+opencv最简单的人脸识别入门
0前置操作 安装python(最新3.10即可) 安装pycharm(社区版即可) 安装opencv-python(cmd输入pip install opencv-python即可,嫌慢用国内镜像也可 ...
- python opencv如何读取本地视频并显示 cv2.VideoCapture()
import cv2cap = cv2.VideoCapture('Video_2020-01-06_101858.wmv')while cap.isOpened():ret, frame = cap ...
最新文章
- Jquery循环截取字符串(多出的字符串处理成...)
- 模板 - AC自动机
- ITK:相同类型的多个输入
- 从硬盘上把数据传回到计算机称为什么,计算机基础知识 第一章 习题三
- java中final使用
- 前端面试题vue-element汇总
- jenkins重启 linux_在Linux中,Jenkins无法启动
- c++ 多线程 垃圾回收器_并行并发CMS垃圾回收器:-XX:+UseConcMarkSweepGC
- 英雄联盟欧洲赛区_Linux命令简介,欧盟的开源数学工具箱以及更多新闻
- 神器 Nginx 的学习手册(建议收藏吃灰)
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
- 雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建链接按钮
- Windows 7(server 2008) 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
- 线性调频信号(chirp signal)
- aardio利用鼠标钩子响应文件拖动过程(一)
- 电脑前面板耳机没声音
- RV32I控制转移指令的偏移量计算问题
- 如何用arcgis修改栅格文件的波段数?
- 所见即所得的 markdown 编辑器:Typora
- NTC热敏电阻温度计算公式