当前位置: 首页 > article >正文

opencv裁剪视频区域

import cv2

# 打开视频文件
video_path = 'input.mp4'
cap = cv2.VideoCapture(video_path)

# 获取视频的帧率、宽度和高度
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 定义裁剪区域 (x, y, w, h)
x, y, w, h = 100, 100, 400, 300  # 你可以根据需要调整这些值

# 创建视频写入对象
output_path = 'output.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 编码器
out = cv2.VideoWriter(output_path, fourcc, fps, (w, h))

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    # 裁剪帧
    cropped_frame = frame[y:y+h, x:x+w]
    
    # 写入裁剪后的帧到输出视频
    out.write(cropped_frame)

    # 显示裁剪后的帧(可选)
    cv2.imshow('Cropped Frame', cropped_frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()

print(f"裁剪后的视频已保存到 {output_path}")

裁剪用opencv比较方便,因为opencv可视化     比较方便                      ,


http://www.kler.cn/a/526658.html

相关文章:

  • 玩转大语言模型——使用langchain和Ollama本地部署大语言模型
  • 【腾讯云】腾讯云docker搭建单机hadoop
  • 快速提升网站收录:避免常见SEO误区
  • SSM开发(八) MyBatis解决方法重载
  • Linux pkill 命令使用详解
  • C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed
  • 白嫖DeepSeek:一分钟完成本地部署AI
  • Linux工具使用
  • Golang 并发机制-2:Golang Goroutine 和竞争条件
  • 【RocketMQ 存储】- broker 端存储单条消息的逻辑
  • 算法随笔_31:移动零
  • DeepSeek-R1 模型及GRPO算法学习
  • 浅谈网络 | 容器网络之Flannel
  • 21.3-启动流程、编码风格(了解) 第21章-FreeRTOS项目实战--基础知识之新建任务、启动流程、编码风格、系统配置 文件组成和编码风格(了解)
  • 雅思写作(支持句)
  • 告别重启!Vue CLI 动态代理配置实战:实现热更新与灵活配置
  • Redis实战(黑马点评)——redis存储地理信息、位图、HyperLogLog 用法
  • 【视频+图文详解】HTML基础1-html和css介绍、上网原理
  • 从零开始学习电池SOC算法
  • MySQL知识点总结(十五)
  • Deep Seek R1本地化部署
  • 如何解决Unit sshd.service could not be found
  • Vue.js组件开发-实现全屏背景图片滑动切换特效
  • 自动备案批量查询脚本
  • 系统思考—蝴蝶效应
  • AngularJS 模块