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

Ubuntu系统VScode实现opencv(c++)视频及摄像头使用

在计算机视觉系统中,视频流与摄像头输入作为图像数据的重要来源,广泛应用于实时监控、目标跟踪、人机交互以及智能驾驶等领域。相比于静态图像处理,视频数据具有时间连续性和动态变化的特点,因而更具挑战性,也更贴近实际应用场景。利用编程接口获取摄像头图像或读取视频文件,可以实现对每一帧图像的逐帧分析与处理,为后续的视觉任务(如检测、识别、跟踪等)提供实时支持。OpenCV 提供了高效简洁的接口用于视频捕获与写入,支持多种平台和设备,使得从实时摄像头或预录制视频中提取、处理、展示图像序列成为可能。

 代码实现:

void Demo::video_Demo(Mat &image)
{VideoCapture capture(0);Mat frame;while (1){capture.read(frame);if (frame.empty())break;// Do somethingflip(frame,frame,1);imshow("video",frame);int c = waitKey(1);if (c == 27){capture.release();//释放摄像头break; }}
}

首先,创建一个视频捕获对象 capture ,参数 0 表示打开默认摄像头(通常是笔记本的内置摄像头)。

其次定义一个空的图像容器 frame,用于存储每一帧读取到的图像数据。capture.read() 会将摄像头读取的一帧图像存储到 frame 中。

 flip(frame, frame, 1);

对图像进行水平翻转(镜像)。

capture.release();//释放摄像头在推出是必要的。运行看结果:

视频也只是改变一个参数即可:只需要将0,换成视频路径。

VideoCapture capture("/home/xlh/视频/录屏/录屏 2025年08月02日 21时48分05秒.webm");

 

其次我们可以对每一帧率的图像进行处理,达到对整个视频的处理。这里我调用一个之前的Demo

 代码如下: 


void Demo::colorspace_Demo(Mat &image)
{Mat gray,hsv;cvtColor(image,hsv,COLOR_BGR2HSV);cvtColor(image,gray,COLOR_BGRA2GRAY);imshow("gray",gray);imshow("hsv",hsv);
}void Demo::video_Demo(Mat &image)
{VideoCapture capture("/home/xlh/视频/录屏/录屏 2025年08月02日 21时48分05秒.webm");Mat frame;while (1){capture.read(frame);if (frame.empty())break;// Do somethingflip(frame,frame,1);colorspace_Demo(frame);int c = waitKey(10);if (c == 27){break; capture.release();//释放摄像头}}
}

 

http://www.dtcms.com/a/310939.html

相关文章:

  • 空间平面旋转与xoy平行
  • 【BTC】挖矿
  • MyBatisPlus之CRUD接口(IService与BaseMapper)
  • 【软考中级网络工程师】知识点之堆叠
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描
  • CS课程项目设计7:基于Canvas交互友好的五子棋游戏
  • 小智服务器Java安装编译(xinnan-tech)版
  • 【05】OpenCV C#——OpenCvSharp 图像基本操作---转灰度图、边缘提取、兴趣区域ROI,图像叠加
  • 28Rsync免密传输与定时备份
  • 【Spring Boot 快速入门】五、文件上传
  • 图漾相机-ROS1_SDK_ubuntu 4.X.X版本编译
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • [硬件电路-122]:模拟电路 - 信号处理电路 - 模拟电路与数字电路、各自的面临的难题对比?
  • [硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
  • 编程与数学 03-002 计算机网络 20_计算机网络课程实验与实践
  • filezilla出现connected refused的时候排查问题
  • Flink2.0学习笔记:Stream API 窗口
  • 鸿蒙智选携手IAM进驻长隆熊猫村,为国宝打造智慧健康呼吸新空间
  • 智能合约漏洞导致的损失,法律责任应如何分配
  • Hyperliquid:揭秘高性能区块链共识引擎HyperBFT
  • 入门MicroPython+ESP32:《点亮LED灯》
  • 1.7vue声明周期
  • Token系列 - 再谈稳定币
  • 保证金率(Margin Ratio)
  • 【最新区块链论文录用资讯】CCF A--WWW 2025 23篇
  • WebForms 简介
  • Redis 核心概念、命令详解与应用实践:从基础到分布式集成
  • 通过filezilla在局域网下实现高速传输数据
  • Selenium自动化:轻松实现网页操控
  • sqli-labs:Less-21关卡详细解析