OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍

这篇具有很好参考价值的文章主要介绍了OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在OpenCV中,normalize函数用于将图像或矩阵的值规范化到一个特定的范围内。这在图像处理中非常有用,比如在调整图像的对比度、准备数据进行机器学习处理时。规范化可以提高不同图像之间的可比性,或是为了满足特定算法对数据范围的要求。

normalize

void normalize(InputArray src, InputOutputArray dst, double alpha = 1, double beta = 0, int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray());
  • src:输入数组(可以是图像)。
  • dst:输出数组,存储规范化后的结果。dst可以和src是同一个数组。
  • alpha:规范化到范围的下限(当norm_type=NORM_MINMAX时)。
  • beta:规范化到范围的上限(当norm_type=NORM_MINMAX时)。
  • norm_type:规范化的类型。最常用的是NORM_MINMAX,用于将数据线性变换到alpha,betaalpha,beta区间。其他选项包括NORM_L1、NORM_L2等,用于不同的数学规范化操作。
  • dtype:输出数组的深度。当值为-1时,输出数组和输入数组的深度相同。可以指定为CV_32F等,以改变输出数据的类型。
  • mask:可选的操作掩码,用于指定要规范化哪些数组元素。

norm_type

norm_type=NORM_MINMAX

最常用的规范化类型,它将输入数组的所有元素线性缩放到一个指定的范围内(通常是[alpha, beta])。对于数组中的每个元素x,转换后的值x’计算如下:
OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&C++,opencv,人工智能,计算机视觉其中minValmaxVal分别是数组中的最小值和最大值。
应用场景:图像处理、数据预处理。
用途:将数据规范化到一个特定的范围内,常用于调整图像亮度和对比度,或在输入机器学习模型前将特征缩放到同一范围。这有助于提高算法的收敛速度和精度。
优势:简单直观,易于实现,可以使数据分布更均匀。

norm_type=NORM_INF

此规范化类型将数组的所有元素缩放,使得结果数组的最大绝对值等于alpha。具体算法是将每个元素x除以数组的最大绝对值maxVal,然后乘以alpha:
OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&C++,opencv,人工智能,计算机视觉
应用场景:优化问题、数值计算。
用途:限制数组或向量的无穷范数(即最大绝对值)。在某些优化问题中,可能需要将解的范围限制在一定界限内,使用NORM_INF规范化可以达到这一目的。
优势:保证了数据中没有极端的大值,有利于数值稳定性

norm_type=NORM_L1

NORM_L1规范化使得结果数组的L1范数(即数组元素绝对值之和)等于alpha。每个元素x的计算公式为:
OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&C++,opencv,人工智能,计算机视觉应用场景:稀疏编码、特征选择、压缩感知。
用途:L1规范化倾向于产生稀疏的解,即大部分元素为零,少数元素非零。这在特征选择中特别有用,可以自动地忽略不重要的特征。
优势:促进稀疏性,有助于提高模型的可解释性,减少模型复杂度。

norm_type=NORM_L2

NORM_L2规范化使得结果数组的L2范数(即数组元素的平方和的平方根)等于alpha。每个元素x的计算公式为:
OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&C++,opencv,人工智能,计算机视觉
应用场景:机器学习、信号处理、图像去噪。
用途:L2规范化倾向于使得所有元素的大小都差不多,这在避免过拟合(如机器学习中的权重衰减)、信号去噪(通过最小化能量)等场景中非常有用。
优势:防止数据中的个别点对总体结果产生过大影响,提高模型的泛化能力。

norm_type总结

  • NORM_MINMAX适用于需要将数据规范化到相同尺度的场景。
  • NORM_INF适用于需要控制数据的最大值不超过特定阈值的场景。
  • NORM_L1适用于需要稀疏解的场景,如特征选择或构建稀疏模型。
  • NORM_L2适用于需要平滑解、防止过拟合的场景,如机器学习中的正则化处理。

举例(norm_type=NORM_MINMAX)

//图像像素归一化
void QuickDemo::normalize_pixel_demo(Mat &image){
	Mat dst;
	image.convertTo(image, CV_32F);//把无符号整型转换为浮点型
	std::cout << "image raw type:"<<image.type() << std::endl;//16---代表CV_8UC3
	std::cout << "image convertTo CV_32F type:" << image.type() << std::endl;//21---CV_32FC3
	normalize(image, dst,2.0,0,NORM_MINMAX );
	std::cout << "CV_32F image NORM_MINMAX type:" << dst.type() << std::endl;//21---CV_32FC3
	imshow("NORM_MINMAX image", dst);
}

OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&amp;C++,opencv,人工智能,计算机视觉OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&amp;C++,opencv,人工智能,计算机视觉OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍,opencv,C&amp;C++,opencv,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-835827.html

到了这里,关于OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV每日函数 了解不同的图像哈希函数、以及OpenCV的img_hash哈希模块

            图像哈希是 使用算法为图像分配唯一哈希值的过程 。图像的副本都具有完全相同的哈希值。因此,它有时被称为“数字指纹”。         在深度学习普及之前,一些搜索引擎使用散列技术来索引图像。这就需要一个哈希函数,对于文件的微小更改,该函数会

    2024年02月11日
    浏览(49)
  • torch.normal()函数

    torch.normal()函数:返回一个张量;是从一个给定mean(均值),std(方差)的正态分布中抽取随机数。mean和std都是属于张量类型的; 参数: mean:均值; std:标准差; out:输出张量; size:张量的大小; 源码参数:

    2024年02月16日
    浏览(42)
  • 探秘OpenCV中的findContours函数

    在计算机视觉领域,图像处理是一项重要的任务。而在图像处理的过程中,轮廓(Contours)的提取是一项基础且关键的操作。OpenCV库中的findContours函数就是用于找到图像中的轮廓的工具之一。本文将深入介绍findContours函数的作用、原理、应用场景,并结合C++和OpenCV提供一些简

    2024年01月21日
    浏览(36)
  • OpenCV中的cv::add()函数

    OpenCV是计算机视觉和图像处理领域中广泛应用的开源库,其中的cv::add()函数用于对图像或数组进行加法运算。本文将深入探讨cv::add()函数的基本概念、用法以及在图像处理中的应用,旨在帮助读者更好地理解和应用这一函数。 在图像处理和计算机视觉任务中,对图像或数组进

    2024年02月22日
    浏览(44)
  • opencv中的几个重要函数

    对于我们经常使用python的同学,尤其还习惯使用numpy库,突然上手opencv c++时,就会感觉想要一个结果,python一行代码搞定,但是c++却无处下手,因此特总结遇到的几个重要opencv函数,方便能够快速获取跟python opencv一样的效果。 1. compare函数 2. findNonZero 3. 有待继续补充 看到感

    2024年01月24日
    浏览(41)
  • OpenCV中的cv::abs()函数

    OpenCV是一款广泛使用的计算机视觉和图像处理的开源库,其中的cv::abs()函数用于计算数字的绝对值。本文将深入探讨cv::abs()函数的基本概念、用法以及在图像处理中的应用,帮助读者更好地理解和应用这一函数。 在图像处理和计算机视觉领域, 经常需要对图像或数字进行绝

    2024年03月21日
    浏览(47)
  • Unity中的normalized参数

    Unity中的normalized参数。 在Unity中,normalized通常用于表示向量的单位化(归一化)。一个向量有两个重要的属性:方向和长度。在三维空间中,一个向量可以由三个分量表示,通常是(x, y, z)。向量的长度可以使用勾股定理计算: length = sqrt(x^2 + y^2 + z^2) 向量的方向可以使用三角

    2023年04月12日
    浏览(23)
  • OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?

            基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为 P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率

    2024年02月07日
    浏览(39)
  • MATLAB——数据归一化处理(normalize函数)

    数据归一化: 数据的归一化是特征缩放(feature scaling)的方法,是数据预处理的关键步骤。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据归一化处理,以解决数据指标之间的可比性。原始数据

    2024年02月22日
    浏览(38)
  • OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

    1. 学习目标 学习 OpenCV 图像像素的类型转换; 学习 OpenCV 归一化函数。 2. OpenCV 图像像素的类型转换 由于【在 OpenCV-Python 中一切图像数据皆 numpy.array】,因此像素的类型转换可以直接使用 numpy 的类型转换方法。 2.1 将像素转换为 float32 2.2 数据输出结果 2.3 图像输出结果 3. 归一

    2024年02月05日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包