【IPMV】Lab1-1 OpenCV入门与实践——从基础操作到实时视频处理(一)

Lab1-1 OpenCV入门与实践——从基础操作到实时视频处理(一)

参考自同济大学蒋磊老师编写的IPMV实验说明
同济大学自动化专业IMPV课程学习记录 (包含知识点以及实验)


Lab0 实验环境准备与OpenCV Hello World
Lab1-1 OpenCV入门与实践——从基础操作到实时视频处理(一)
Lab1-2 OpenCV入门与实践——从基础操作到实时视频处理(二)
Lab2-1 从零玩转Eigen库:掌握线性代数与OpenCV互操作的神器!(一)
Lab2-2 从零玩转Eigen库:掌握线性代数与OpenCV互操作的神器!(二)
Lab4 Blending 线性混合与拉普拉斯金字塔混合对比

待更新



引言:OpenCV(Open Source Computer Vision Library)是一个功能强大的计算机视觉库,广泛应用于图像处理、视频分析、机器学习等领域。本文将带你从OpenCV的基础操作入手,逐步实现实时视频处理,帮助你快速掌握OpenCV的核心功能。


0 任务

  • 基础OpenCV操作
    • 创建和操作图像数组(Mat
    • 读取和显示图像(imreadimshow
    • 保存图像(imwrite
    • 绘图和文本添加(linecircleputText
  • 实时视频处理
    • 配置虚拟机以使用摄像头
    • 获取并显示实时视频流
    • 添加实时处理功能(如灰度转换、边缘检测等)

1 基础OpenCV操作

1.1 创建图像数组(Mat

Mat 用法参考

Mat是 OpenCV 中用于存储图像和矩阵的核心数据结构。通过Mat,我们可以创建、操作和保存图像。

基本用法:

cv::Mat (int rows, int cols, int type, const Scalar &s);
  • rows:图像的行数(高度)
  • cols:图像的列数(宽度)
  • type:图像的数据类型(如CV_8UC3表示8位无符号3通道图像)
  • Scalar(color):初始化颜色(BGR格式)

示例:

// 创建一个320x240的绿色图像
cv::Mat image(240, 320, CV_8UC3, cv::Scalar(0, 255, 0)); 

参数说明

参数顺序 参数示例 含义
1 240 图像高度 240 px
2 320 图像宽度 320 px
3 CV_8UC3 8位无符号3通道图像
4 cv::Scalar(0, 255, 0) B = 0, G = 255, R = 0
初始颜色为绿色

1.2 显示图像(imshow

imshow用于在窗口中显示图像。
基本用法:

cv::imshow("窗口名称", image);
  • 窗口名称:显示窗口的标题
  • image:要显示的图像数组
任务

创建一个320x240的绿色图像,并在窗口中显示它。

如果你还不太熟悉如何创建OpenCV项目、编写CMakeLists.txt文件(用于编译控制)以及在VSCode中使用CMake,可以参考Lab0 中的环境验证部分

下面直接给出了该任务main.cpp的示例:

#include "opencv2/opencv.hpp"
int main(){
   
    cv::Mat image(320, 240, CV_8UC3, cv::Scalar(0,255,0));
    cv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值