当前位置: 首页 > 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.lryc.cn/news/607749.html

相关文章:

  • ffmpeg命令和ffplay命令详解
  • 垃圾收集器ParNewCMS与底层三色标记算法详解
  • 【云计算】云主机的亲和性策略(四):云主机组
  • VAST视频广告技术实现:从零开始搭建视频广告投放系统
  • 【20min 急速入门】使用Demucs进行音轨分离
  • 【云计算】云主机的亲和性策略(三):云主机 宿主机
  • 【Android】RecyclerView实现新闻列表布局(1)适配器使用相关问题
  • MySQL 运算符
  • 【Android】使用 Intent 传递对象的两种序列化方式
  • 【Android】进度条ProgressBar 可拖拽进度条Seekbar
  • Javaweb————Apache Tomcat服务器介绍及Windows,Linux,MAC三种系统搭建Apache Tomcat
  • Vue 详情模块 4
  • 分布式微服务--Nacos作为配置中心(二)
  • Text2SQL:如何通过自然语言直接获取数据,打破技术壁垒?
  • opencv自定义滤波
  • 入门MicroPython+ESP32:开启科技新旅程
  • 云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合
  • Diffusion模型生产化指南:用LoRA技术快速定制企业专属AI画师
  • 电商API接口的优势、数据采集方法及功能说明
  • AIDL当Parcelable序列化的数据类通信时报“Class not found when unmarshalling“找不到该类时的解决方案
  • 存储成本深度优化:冷热分层与生命周期管理——从视频平台年省200万实践解析智能存储架构
  • Linux网络编程【UDP网络通信demon】
  • 编程与数学 03-002 计算机网络 19_网络新技术研究
  • 【DeepSeek-R1 】分词系统架构解析
  • fastGEO v1.7.0 大更新,支持PCA、差异分析、火山图、热图、差异箱线图、去批次等分析
  • 【05】VisionMaster入门到精通——圆查找
  • Spring Boot 全 YAML 配置 Liquibase 教程
  • 决策树算法:三大核心流程解析
  • 嵌入式系统的中断控制器(NVIC)
  • SpringCloud实战:机器人对战系统架构