首页 > 其他分享 >OpenCV(cv::normalize())

OpenCV(cv::normalize())

时间:2024-08-29 15:07:33浏览次数:9  
标签:normalize 归一化 OpenCV 图像 alpha cv NORM

目录



cv::normalize() 是 OpenCV 中用于将数据值缩放到指定范围或对数据进行归一化处理。



1. 函数原型:

void cv::normalize( InputArray src, OutputArray dst, double alpha = 1, double beta = 0, int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray() );

参数:

  1. src (InputArray): 输入数组或图像,通常为单通道或多通道的矩阵(如 cv::Mat 类型)。这是需要被标准化的源数据。

  2. dst (OutputArray): 输出标准化后的数组或图像。大小和类型取决于输入和参数设置。

  3. alpha (double): 归一化后的最小值或缩放系数,具体含义取决于 norm_type。如果选择了 NORM_MINMAXalpha 表示归一化后数据的最小值。如果是 NORM_L2NORM_L1NORM_INFalpha 是缩放的目标值。

  4. beta (double): 归一化后的最大值,当 norm_typeNORM_MINMAX 时有效。这个参数只会在该类型下使用,以设置归一化后的最大值。

  5. norm_type (int): 归一化的类型。常见的有以下几种:

    • NORM_INF: 将数组的每个元素除以绝对值的最大值。
    • NORM_L1: 将数组的每个元素除以元素绝对值之和。
    • NORM_L2: 将数组的每个元素除以元素平方和的平方根(欧几里得范数)。
    • NORM_MINMAX: 线性缩放,使得数组的最小值和最大值分别为 alphabeta
  6. dtype (int): 输出数据类型。如果设置为 -1,则输出与输入类型相同。否则,可以显式指定输出类型(如 CV_32FCV_8U 等)。

  7. mask (InputArray): 可选的掩码数组(通常是二值图像)。只对掩码中为非零的像素进行标准化处理。

返回值:

该函数没有返回值,但它会通过 dst 输出标准化后的结果。



2. 使用场景:

  1. 归一化处理:将图像像素值归一化到特定范围,常用于图像的预处理或后处理,例如将图像像素值归一化到 [0, 1] 范围内。
  2. 特征标准化:对输入数据进行标准化处理,使其适用于机器学习模型的训练和预测。
  3. L2 范数归一化:用于规范化向量或图像数据,使其符合 L2 范数的要求,常用于图像处理中的向量计算。


3. 示例:

cv::Mat src = cv::imread("image.jpg", cv::IMREAD_GRAYSCALE);
cv::Mat dst;

// 将图像归一化到 [0, 255] 范围内
cv::normalize(src, dst, 0, 255, cv::NORM_MINMAX);
  • 上面的示例代码中,cv::normalize() 函数将输入图像的像素值缩放到 [0, 255] 范围内。
  • norm_typeNORM_MINMAX,意味着我们使用最小-最大缩放。alpha=0 表示归一化后的最小值为 0,beta=255 表示归一化后的最大值为 255。

通过这种方式,可以对图像进行有效的归一化处理,方便后续的图像分析与处理。



标签:normalize,归一化,OpenCV,图像,alpha,cv,NORM
From: https://www.cnblogs.com/keye/p/18386693

相关文章

  • ECCV24|全局式SfM最新SOTA,GLOMAP重新定义SfM!
    前言 ETH&微软最新开源-全局式GLOMAP,它与以前的全局SfM系统相比,其核心区别在于全局定位步骤。不是先执行不适定的平移平均然后进行全局三角测量,而是进行联合相机和点位置估计。GLOMAP不仅在鲁棒性和准确性方面达到增量式COLMAP系统相当或更优的水平,同时还比COLMAP快几个数量级。......
  • OpenCV(cv::dft())
    目录1.函数定义2.示例3.使用场景4.注意事项5.总结cv::dft()是OpenCV中用于计算离散傅里叶变换(DFT)的函数。傅里叶变换是一种重要的数学工具,用于将信号从时域转换到频域。这在图像处理和信号处理领域非常有用,例如滤波、卷积、图像频率分析等。1.函数定义voidcv::......
  • OpenCV(cv::mulSpectrums())
    目录1.函数定义2.工作原理3.示例4.典型应用5.总结cv::mulSpectrums()是OpenCV中用于频域信号处理的一个函数,它可以将两个频域的傅里叶变换结果相乘。通常用于频域滤波、卷积、相关性计算等任务。1.函数定义voidcv::mulSpectrums(InputArraya,InputArrayb,Out......
  • OpenCV(cv::idft())
    目录1.函数2.示例3.应用场景4.注意事项5.总结cv::idft()是OpenCV中用于计算逆离散傅里叶变换(IDFT)的函数,它将频域的数据转换回时域。它常与cv::dft()配合使用,例如在进行频域滤波后,需要使用cv::idft()将处理后的数据转换回图像的空间域。1.函数voidcv::idft(......
  • OpenSSH 存在输入验证错误漏洞(CVE-2019-16905) 解决
    1、下载文件:zlib-1.2.11.tar.gzopenssh-8.3p1.tar.gzopenssl-1.1.1g.tar.gz 2、解压升级包tar--no-same-owner-zxvfzlib-1.2.11.tar.gztar--no-same-owner-zxvfopenssh-8.3p1.tar.gztar--no-same-owner-zxvfopenssl-1.1.1g.tar.gz 3、编译安装zlibcdzli......
  • Clion\+OpenCV(C\+\+版)开发环境配置教程Win/Mac
    合集-环境配置(2)1.最全!嵌入式STM32单片机开发环境配置教学Win/Mac!!!08-282.最简最速!C++版OpenCV安装配置教程Win/Mac!!!08-28收起Clion+OpenCV(C++版)开发环境配置教程Win/Mac平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定......
  • Datawhale AI 夏令营 CV方向 Task 1
    一、赛事背景        城市治理赛道——随着城市化进程的加快,城市管理面临着前所未有的挑战。占道经营、垃圾堆放和无照经营游商等问题对城市管理提出了更高的要求。本赛道聚焦城市违规行为的智能检测,要求选手研究开发高效可靠的计算机视觉算法,提升违规行为检测识别的......
  • OpenCV开发笔记(七十九):基于Stitcher类实现全景图片拼接
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141561865长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…OpenCV开发专栏......
  • Datawhale AI 夏令营 CV方向 Task 2
    一、YOLO模型简介        YOLO模型是在图像和视频中识别感兴趣物体对象,通常通过边界框形式来识别物体。以下是物体检测的一些关键概念和步骤:输入:物体检测算法的输入通常是一张图像或视频帧。特征提取:算法使用深度学习模型(如卷积神经网络CNN)来提取图像的特征。这些......
  • SciTech-BigDataAIML-CV+CG-Digital Image/Signal Processing- RGB图片转换成 RGBA格
    RGBA与RGBRGB是Color(颜色)数值化为R(红色)、G(绿色)、B(蓝色)**三Channel(分量),每分量数值的取值范围为0-255。通过组合这三个ColorChannel(颜色分量)的不同数值,可以得到各种各样的颜色。RGBA是RGB颜色模型的一种扩展,只增加了一个表示透明度(Alpha)的透明分量(A)。A代......