opencv视频读写

需要使用VideoCapture类

读取mp4文件

cv::VideoCapture vcapture("chouyan2.mp4");if (vcapture.isOpened()) {while (vcapture.grab()) {// 直接从视频文件或者设备捕获中抓取帧cv::Mat myFrame;//vcapture >> myFrame; // 将视频中的数据流向Matif (vcapture.read(myFrame)) {cv::imshow("读取mp4视频文件", myFrame);cv::waitKey(40);}}}vcapture.release();

读取rtsp流并且按下空格键保存图片

修改文件名即可

cv::VideoCapture vcapture("rtsp://admin:Admin123@192.168.101.234");int picNum{ 0 };if (vcapture.isOpened()) {while (vcapture.grab()) {// 直接从视频文件或者设备捕获中抓取帧cv::Mat myFrame;//vcapture >> myFrame; // 将视频中的数据流向Matif (vcapture.read(myFrame)) {cv::imshow("读取rtsp视频文件", myFrame);if (cv::waitKey(20) == 32) {std::string picName = std::to_string(picNum) + ".jpg";cv::imwrite(picName.c_str(), myFrame);picNum++;}}}}vcapture.release();

编码生成视频文件

cv::VideoCapture vcapture("rtsp://admin:Admin123@192.168.101.234");cv::VideoWriter vcwriter("test.mp4", cv::VideoWriter::fourcc('X', '2', '6', '4'), 25, cv::Size(vcapture.get(cv::CAP_PROP_FRAME_WIDTH), vcapture.get(cv::CAP_PROP_FRAME_HEIGHT)), true);int picNum{ 0 };if (vcapture.isOpened()) {while (vcapture.grab()) {// 直接从视频文件或者设备捕获中抓取帧cv::Mat myFrame;//vcapture >> myFrame; // 将视频中的数据流向Matif (vcapture.read(myFrame)) {drawrectangle(myFrame);cv::imshow("读取rtsp视频文件", myFrame);int key = cv::waitKey(20);if (key == 32) {std::string picName = std::to_string(picNum) + ".jpg";cv::imwrite(picName.c_str(), myFrame);picNum++;break;} else if (key == 'q') {break;}vcwriter.write(myFrame);}}}vcapture.release();vcwriter.release();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15811.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用.bat实现检测电脑网络连接是否正常?

1、在电脑桌面新建一个记事本文档,将如下内容写进去: echo 正在检查中...echo off ping www.baidu.com -t pause:: 这是注释2、然后,保存一下,再把桌面此文件重命名为检查电脑外网连接.bat 3、双击此程序,可以检测…

C#高级:使用Invoke关键字通过 Type 类型调用指定的方法

demo如下: using System.Reflection; using System;public class Program {public class Calculator{public int Add(int a, int b){return a b;}}public class Student{public string Name { get; set; }}public class Example{// 泛型方法public string Generi…

VTK知识学习(8)-坐标系统

1、概述 计算机图形学里常用的坐标系统有4种: 1)、Model坐标系统。定义模型时所采用的坐标系统,通常是局部的笛卡儿坐标系。 2)、World坐标系统。是放置Actor的三维空间坐标系。 Actor(vtkActor类&am…

MongoDB新版本安装配置教程(7.0.15版本-zip下载)

找了半天MongoDB新版本怎么解决没有mongo命令,都没有很好的解决方法 现在分享一下: 首先下载: 然后手动创建 data 和 log 两个文件夹 然后再系统变量配置环境变量 在data的目录下,创建一个db文件 然后:在bin目录下cmd执行: mongod --dbpath D:\MongoDB\data\db …

在Docker环境下为Nginx配置HTTPS

前言 配置HTTPS已经成为网站部署的必要步骤。本教程将详细介绍如何在Docker环境下为Nginx配置HTTPS,使用自签名证书来实现加密通信。虽然在生产环境中建议使用权威CA机构颁发的证书,但在开发测试或内网环境中,自签名证书是一个很好的选择。 …

QEMU 模拟器中运行的 Linux 系统

这两个文件通常用于在 QEMU 模拟器中运行的 Linux 系统,具体作用如下: 1. linux-aarch64-qemu.ext4: - **文件类型**:这是一个文件系统镜像文件,通常是 ext4 文件系统格式。 - **作用**:它包含了 Li…

Struts扫盲

Struts扫盲 这里的struts是struts1。以本文记录我的那些复习JavaEE的痛苦并快乐的晚上 Struts是什么 框架的概念想必大家都清楚,框架即“半成品代码”,是为了简化开发而设计的。一个项目有许多分层,拿一个MVC架构的Web应用来说,有…

【论文精读】GOT-OCR2.0源码论文——打破传统OCR流程的多模态视觉-语言大模型架构:预训练VitDet 视觉模型+ 阿里通义千问Qwen语言模型

作为本系列的开篇文章,首先定下本系列的整体基调。论文精读系列,旨在记录研读深度学习、强化学习相关论文的个人心得和理解,仅供参考,欢迎指正错误和研究探讨。 所有文章只会摘选论文部分进行分析,且不一定按原文行文顺…

【Rust 编程语言工具】rustup-init.exe 安装与使用指南

rustup-init.exe 是用于安装和管理 Rust 编程语言工具链的 Windows 可执行文件。Rust 是一种系统级编程语言,旨在提供安全、并发和高性能的功能。rustup-init.exe 是官方提供的安装器,用于将 Rust 安装到 Windows 操作系统中,并配置相关环境。…

【Hutool系列】反射工具-ReflectUtil

前言 反射是 Java 中一种强大的机制,可以在运行时动态地获取类的信息并操作类的属性和方法。在 Java 中,通过反射可以获取和设置类的字段、调用类的方法、创建类的实例等。Java的反射机制,可以让语言变得更加灵活,对对象的操作也更…

Microsoft Fabric - 尝试一下Real time event stream

1. 简单介绍 微软推出的Microsoft Fabric平台已经有一段时间了,这是一个Data engineer, Data Sciencist, Business等多种工作角色的人员可以一起工作的一个大平台。 note, Microsoft Fabric 提出了OneLake, LakeHouse的概念,同时为了防止数据冗余&#…

数字图像处理(c++ opencv):图像复原与重建-常见的滤波方法--自适应滤波器

自适应局部降噪滤波器 自适应局部降噪滤波器(Adaptive, Local Noise Reduction Filter)原理步骤 步骤 (1)计算噪声图像的方差 ; (2)计算滤波器窗口内像素的均值 和方差 ; &…

C++:类和对象(上)

目录 一、类的定义 二、 访问限定符 三、 实例化概念类: 类(Class) 对象(Object) 实例化(Instantiation) 四、 对象大小 五、this 指针的基本概念 this 指针的作用: this 指…

如何在vscode 中打开新文件不覆盖上一个窗口

在 VSCode 中,如果你单击文件时出现了覆盖Tab的情况,这通常是因为VSCode默认开启了预览模式。在预览模式下,单击新文件会覆盖当前预览的文件Tab。为了解决这个问题,你可以按照以下步骤进行操作 1.打开VSCode:启动你的…

Linux篇(权限管理命令)

目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户(超级管理员) 二、普通权限管理 1. ls查看文件权限 2. 文件…

冲压车间如何开展六西格玛管理培训

面对日益严苛的客户要求与成本控制挑战,传统的管理模式已难以满足高质量发展的需求。此时,六西格玛管理以其严谨的数据驱动、持续改进的理念,成为众多企业转型升级的有力工具。本文,天行健企业管理咨询公司将深入探讨冲压车间如何…

基于微信小程序的平安驾校预约平台的设计与实现(源码+LW++远程调试+代码讲解等)

摘 要 互联网发展至今,广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力…

插入排序(sort)C++

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C/Rust/Pascal 1秒,其他语言2秒 空间限制:C/C/Rust/Pascal 512 M,其他语言1024 M 64bit IO Format: %lld 题目描述 插入排序是一种…

卷积、频域乘积和矩阵向量乘积三种形式之间的等价关系与转换

线性移不变系统 线性移不变系统(Linear Time-Invariant System, LTI系统)同时满足线性和时不变性两个条件。 线性:如果输入信号的加权和通过系统后,输出是这些输入信号单独通过系统后的输出的相同加权和,那么该系统就…

15分钟学 Go 第 53 天 :社区资源与学习材料

第53天:社区资源与学习材料 目标 了解Go语言官方资源掌握社区重要学习平台学会利用开源项目学习构建个人知识体系 一、Go语言官方资源汇总 资源类型网址说明Go官网golang.org官方文档、下载、教程Go Blogblog.golang.org技术博客、最新特性介绍Go Playgroundpla…