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

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.xdnf.cn/news/16803.html

相关文章:

  • [硬件电路-112]:模拟电路 - 信号处理电路 - 二极管的应用 - 峰值检测电路与波形展示
  • 【网络与爬虫 37】ScrapeFly深度解析:云端爬虫革命,告别复杂部署拥抱一键API
  • C++入门自学Day5-- c++类与对象(面试题)
  • 苹果MAC 安卓模拟器
  • HarmonyOS 开发:基于 ArkUI 实现复杂表单验证的最佳实践
  • CS课程项目设计7:基于Canvas交互友好的五子棋游戏
  • Pyspark的register方法自定义udf函数
  • Mysql在页内是怎么查找数据的?
  • Web 开发 10
  • Redis 核心概念、命令详解与应用实践:从基础到分布式集成
  • pyqt5显示任务栏菜单并隐藏主窗口,环境pyqt5+vscode
  • JVM 03 类加载机制
  • Python打卡Day30 模块和库的导入
  • LeetCode 刷题【26. 删除有序数组中的重复项、27. 移除元素、28. 找出字符串中第一个匹配项的下标】
  • vue2一种快速导入 Element UI(即 Element 2.x)方式
  • ARM Cortex-M异常处理高级特性详解
  • MCP Agent 工程框架Dify初探
  • 【C++】类和对象(2)
  • AI Agent开发学习系列 - LangGraph(4): 有多个输入的Graph(练习解答)
  • 设计模式篇:在前端,我们如何“重构”观察者、策略和装饰器模式
  • Android 运行 deno 的新方法 (3): Termux 胖喵安初
  • vue3pinia
  • 深度学习核心:卷积神经网络 - 原理、实现及在医学影像领域的应用
  • vue3 新手学习入门
  • Elasticsearch 混合检索一句 `retriever.rrf`,把语义召回与关键词召回融合到极致
  • Agents-SDK智能体开发[5]之集成MCP进阶
  • 【vue】创建响应式数据ref和reactive的区别
  • Ⅹ—6.计算机二级综合题23---26套
  • 两个服务之间的大规模数据推送
  • TOGAF指南1