归一化函数normalize详解
opencv 2 归一化函数normalize详解
1. 归一化定义与作用
归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。
归一化的目的简而言之,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。
在使用机器学习算法的数据预处理阶段,归一化也是非常重要的一个步骤。例如在应用SVM之前,缩放是非常重要的。Sarle的神经网络FAQ的第二部分(1997)阐述了缩放的重要性,大多数注意事项也适用于SVM。缩放的最主要优点是能够避免大数值区间的属性过分支配了小数值区间的属性。另一个优点能避免计算过程中数值复杂度。因为关键值通常依赖特征向量的内积(inner products),例如,线性核和多项式核,属性的大数值可能会导致数值问题。我们推荐将每个属性线性缩放到区间[-1,+1]或者[0, 1]。
当然,我们必须使用同样的方法缩放训练数据和测试数据。例如,假设我们把训练数据的第一个属性从[-10,+10]缩放到[-1, +1],那么如果测试数据的第一个属性属于区间[-11, +8],我们必须将测试数据转变成[-1.1, +0.8]。
参考:“SVM:从理论到OpenCV实践” 4.2 归一化数据:
http://blog.csdn.net/zhazhiqiang/article/details/20146243
2. normalize 函数介绍
函数原型:
void normalize(InputArray src,OutputArraydst, double alpha = 1, double beta = 0, intnorm_type = NORM_L2, int dtype = -1, InputArray mask = noArray() )
该函数归一化输入数组使它的范数或者数值范围在一定的范围内。
Parameters:
src
输入数组
dst
输出数组,支持原地运算
alpha
range normalization模式的最小值
beta
range normalization模式的最大值,不用于norm normalization(范数归一化)模式。
normType
归一化的类型,可以有以下的取值:
NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。
NORM_INF:此类型的定义没有查到,根据OpenCV 1的对应项,可能是归一化数组的C-范数(绝对值的最大值)
NORM_L1 : 归一化数组的L1-范数(绝对值的和)
NORM_L2: 归一化数组的(欧几里德)L2-范数
dtype
dtype为负数时,输出数组的type与输入数组的type相同;
否则,输出数组与输入数组只是通道数相同,而tpye=CV_MAT_DEPTH(dtype).
mask
操作掩膜,用于指示函数是否仅仅对指定的元素进行操作。
3.归一化公式:
1、线性函数转换,表达式如下:(对应NORM_MINMAX)
if mask(i,j)!=0
dst(i,j) = (src(i,j) - min(src)) * (b' - a') / (max(src) - min(src)) + a'
else
dst(i,j) = src(i,j)
其中b' = MAX(alpha,beta ) , a' = MIN(alpha,beta );
2. 当norm_type!=NORM_MINMAX:
if mask(i,j) != 0
dst(i,j) = src(i,j) *alpha / norm (src,norm_type,mask)
else
dst(i,j) = src(i,j)
其中,函数norm的功能是计算norm(范数)的绝对值
Thefunctions norm calculate an absolute norm of src1 (when there is no src2 ):
归一化函数normalize详解相关推荐
- 归一化php,归一化函数normalize详解
opencv 2 归一化函数normalize详解 1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内.首先归一化是为了后面数据处理的方便,其次是保 ...
- python normalize函数_归一化函数normalize详解
opencv 2 归一化函数normalize详解 1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后 (通过某种算法)限制在你需要的一定范围内.首先归一化是为了后面数据处理的方便,其次是 ...
- opencv java match_OpenCV模板匹配函数matchTemplate详解
参考文档:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matchin ...
- 批归一化(Batch Normalization)详解
批归一化(Batch Normalization)详解 文章目录 批归一化(Batch Normalization)详解 前言 一.数据归一化 二.BN解决的问题:Internal Covariate ...
- 数字图像处理:OpenCV-Python中的直方图均衡知识介绍及函数equalizeHist详解
一.引言 在<数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍 >(链接:https://blog.csdn.net/LaoYuanPython/a ...
- Python matplotlib.pyplot.hist函数 参数详解(超详细的!)
matplotlib.pyplot.hist函数 参数详解 函数内容 matplotlib.pyplot.hist(x, bins=None, range=None, normed=False, we ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表
R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 目录 R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 收缩两列数据
- R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表
R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表 目录 R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表
最新文章
- UWP 手绘视频创作工具技术分享系列 - 手绘视频导出
- MyBatis-04 MyBatis XML方式之insert元素
- 困扰我多年的跟腱病是如何康复的?(2)
- java并发编程-Executor框架
- js给标签添加属性和值_jquery节点属性
- 远程过程调用失败_Java开发大型互联网RPC远程调用服务实现之问题处理方案
- Jenkins 流水线 获取git 分支列表_某小型公司持续集成工具 jenkins 实践
- 【渝粤教育】电大中专营销策划原理与实务 (2)_1作业 题库
- C++ 对象间通信框架 V2.0 ××××××× 之(五)
- 【新书速递】计算机系统解密:从理解计算机到编写高效代码
- linux下终端快捷键
- LabView的简单例题,尽量做到一题多解
- 利用随机数生成器生成固定概率生成器
- 2020年十七届华为杯数学建模比赛记录
- 腾讯云数据库TDSQL-C(原CynosDB)的外网访问配置
- 《Google软件工程》读书笔记
- Python爬虫实战:分析《战狼2》豆瓣影评
- JSON 字符串是如何被解析的?JsonParser 了解一下
- 【小白破解电脑密码】忘记电脑开机密码了,怎么办?
- 江西计算机一级b考试,江西省计算机B一级考试试题.doc
热门文章
- 【计算机视觉40例】案例32:定位人脸
- jQuery事件知识点部分总结
- MyBatis简单CURD
- Excel 取整/取余/四舍五入 函数
- oracle rac环境下修改1521集群端口
- 新浪微博搜索:下一站天王?
- python中factorial_Python中的factorial()
- 鬼脚七:淘宝卖家需知的搜索知识(下)
- 强化学习环境mujoco排坑之关于anaconda3/compiler_compat/ld: cannot find -lGL问题
- LOJ572: Misaka Network 与求和