【OpenCV】基本数据类型及常见图像模式

是什么?能做什么?解决什么问题?为什么用它?

OpenCV:是一个基于开源发行的跨平台计算机视觉库,实现

一、应用场景:

  • 目标识别:人脸、车辆、车牌...
  • 自动驾驶
  • 医学影像分析
  • 视频内容理解与分析:文字识别、公众人物识别、物品分类...

二、opencv基本数据类型:

1. 点和向量类型
  • 二维点,如:
    • Point2i(或Point):整数坐标点(x, y)。
    • Point2f:浮点数坐标点。
    • Point2d:双精度坐标点。
  • 三维点,如:
    • Point3f:三维浮点数点(x, y, z)。
2. 标量类型(多通道值)
  • 多通道值,常用于表示颜色或像素值(顺序为BGR

** Scalar(a, b, c):**对于 BGR 图像,表示蓝色(B=a)、绿色(G=b)、红色(R=c)

Scalar green(0, 255, 0); // 绿色

  • 单通道值,使用ucharScalar(val)表示

Scalar(val) 所有通道赋值为val(如灰度图像)

uchar grayValue = 128; // 中灰度值

Scalar gray(128); // 等效表示

三、图像模式:

图像: 一些亮度各异的点

  • 位图模式:是1位二进制深度的图像,黑和白两种颜色
  • 灰度模式:1个通道
  • RGB模式:3个通道

(1)雪花屏:

Mat noise = cv::Mat::zeros(img.size(), CV_8UC1);

randu(noise, cv::Scalar::all(0), cv::Scalar::all(255));

  1. 第一个参数 (noise)

    • 这是一个输出参数,表示生成的随机数将存储在这个矩阵中。noise 是一个 cv::Mat 类型的变量,它预先定义了大小和类型(在这个例子中是 CV_8UC1,即8位无符号整型),用于存储生成的随机数。
  2. 第二个参数 (cv::Scalar::all(0))

    • 这是生成随机数的最小值。cv::Scalar::all 是一个方便的函数,用于创建一个所有元素都相同的 cv::Scalar 对象。这里它创建了一个所有元素都是0的 cv::Scalar 对象。
  3. 第三个参数 (cv::Scalar::all(255))

    • 这是生成随机数的最大值。同样使用 cv::Scalar::all 函数,创建了一个所有元素都是255的 cv::Scalar 对象。这意味着生成的随机数范围是从0到255。

(2)高斯模糊:

Mat gao_img;
GaussianBlur(img, gao_img, cv::Size(17,17), 0, 0);

参数说明

  • src:输入图像(源图像)
  • dst:输出图像(结果),必须与输入图像有相同的尺寸和类型
  • ksize :高斯核大小,例如 Size(5, 5),必须为奇数
  • sigmaX:X 方向的高斯核标准差
  • sigmaY:Y 方向的高斯核标准差(默认 0,表示与 sigmaX 相同)

(3)中值滤波:

cv::medianBlur(img, imgBack, 53);

参数说明:第三个参数必须为奇数

(4)毛玻璃:

Mat glass_img;

blur(img, glass_img, cv::Size(15, 15));

(5)灰度

cv::Mat gray;

cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);

第三个参数:

  • COLOR_BGR2GRAY:BGR → 灰度图
  • COLOR_BGR2RGB:BGR → RGB
  • COLOR_BGR2HSV:BGR → HSV
  • COLOR_GRAY2BGR:灰度图 → BGR

(6)方向模糊

void bilateralFilter(InputArray src, OutputArray dst, int d,

double sigmaColor, double sigmaSpace, int borderType = BORDER_DEFAULT);
Mat direction_img;

cv::bilateralFilter(img, direction_img, 29, 75, 75); // 常用参数组合

参数:

  • src:输入图像(8 位或浮点型,单通道或三通道)。
  • dst:输出图像,与输入图像大小和类型相同。
  • d:滤波时使用的像素邻域直径。若为负数,则自动从 sigmaSpace 计算。
  • sigmaColor:颜色空间滤波器的标准差,值越大表示越远的颜色会被混合。
  • sigmaSpace:坐标空间滤波器的标准差,值越大表示越远的像素会相互影响。
  • borderType:边界处理方式,默认 BORDER_DEFAULT
相关推荐
Qforepost1 分钟前
英伟达有意入股 PsiQuantum,释放战略转向量子计算的重要信号
人工智能·量子计算·量子
Blossom.1182 分钟前
量子计算在金融科技中的应用前景
大数据·人工智能·安全·机器学习·计算机视觉·金融·量子计算
旺仔溜溜没10 分钟前
Autodl训练Faster-RCNN网络(自己的数据集)
人工智能·深度学习·神经网络·cnn
广州华锐视点1 小时前
VR 航天科普,沉浸式体验宇宙奥秘
人工智能·vr
纠结哥_Shrek1 小时前
ollama+open-webui搭建可视化大模型聊天
人工智能·电商·ollama·open-webui
熊猫在哪1 小时前
野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(一)conda环境搭建
linux·人工智能·python·嵌入式硬件·神经网络·机器学习·边缘计算
pk_xz1234562 小时前
Python程序实现了一个完整的车辆信息查询系统
开发语言·python·opencv
技能咖2 小时前
人工智能解析:技术革命下的认知重构
人工智能·重构
腾讯云qcloud07552 小时前
腾讯位置服务重构出行行业的技术底层逻辑
人工智能·重构·智慧城市
拓端研究室TRL2 小时前
MATLAB贝叶斯超参数优化LSTM预测设备寿命应用——以航空发动机退化数据为例
开发语言·人工智能·rnn·matlab·lstm