归一化函数normalize详解

2023-05-16

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 ):


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

归一化函数normalize详解 的相关文章

随机推荐

  • 迭代器(Iterator)

    迭代器 Iterator 是一个对象 xff0c 它的工作是遍历并选择序列中的对象 xff0c 它提供了一种访问一个容器 container 对象中的各个元素 xff0c 而又不必暴露该对象内部细节的方法 通过迭代器 xff0c 开发人员不
  • 单片机串口发送数据很慢?这种方法帮助你提高!

    本文介绍如何使用带FIFO的串口来减少接收中断次数 xff0c 通过一种自定义通讯协议格式 xff0c 给出帧打包方法 xff1b 之后介绍一种特殊的串口数据发送方法 xff0c 可在避免使用串口发送中断的情况下 xff0c 提高系统的响应
  • 2020-11-21

    xftp 提示无法显示远程文件夹 不是什么被动不被动的问题 是权限的问题 xff0c 如果这个文件夹有 34 x 34 权限 就可以打开 没有就不行
  • three.js加载3D模型(glb/gltf/fbx)

    three js加载3D模型 glb gltf fbx 一 理解three 1 一个可以在某个3D建模软件打开的东西 xff0c 通过某种方案在浏览器中打开 xff1b 2 不要试图手动去创建3D图形 xff0c 当然比较闲的话可以这样操作
  • 单片机复位电路原理

    单片机的复位引脚RST 全称RESET 出现2个机器周期以上的复位电平 时 xff0c 单片机就执行复位操作 如果RST持续为复位电平 xff0c 单片机就处于循环复位状态 当单片机处于正常电平时就正常转入执行程序 图1 xff1a 当单片
  • 在ubuntu下安装vmware-tools

    用vmware虚拟机安装了ubuntu之后 xff0c 为了实现更加强大的功能 xff0c 比如说直接从windows主机拖文件进入ubuntu xff0c 以及加强ubuntu的性能 xff0c 我们一般都要安装vmware tools
  • 虚拟机安装Ubantu 16.04,并修改配置文件更改网络配置

    https blog csdn net qq 41016818 article details 81211744 ops request misc 61 amp request id 61 amp biz id 61 102 amp utm
  • Ubuntu 16.04下安装visual studio code

    一 坑和解决办法 很多帖子上写的方法都是使用命令方式 xff1a 1 先安装make sudo add apt repository ppa ubuntu desktop ubuntu make sudo apt get update su
  • 虚拟机Ubuntu与外网连接

    详情可参考 xff1a https blog csdn net gaoganghua article details 80386107 ops request misc 61 257B 2522request 255Fid 2522 253
  • Xftp6如何连接虚拟机(Ubuntu)Windows与虚拟机之间传输文件

    一 安装Ubuntu ssh出现异常 Err 1 http security ubuntu com ubuntu xenial security main amd64 openssh sftp server amd64 1 7 2p2 4u
  • ubuntu下搭建ftp服务器

    1 安装vsftpd xff0c 安装命令 xff1a sudo apt get install vsftpd 查看是否安装成功 xff1a vsftpd version 2 新建一个文件夹用于FTP的工作目录 xff08 cpucard是
  • 命名空间 std 中没有名为 stoi 的成员

    我正在测试std stoi以下链接中的函数 xff1a 但我收到了错误 xff1a 已经添加了头文件 include lt string gt xff0c 但仍然错误提示 xff1a 在命名空间 std 中没有名为 stoi 的成员 xff
  • Linux+vscode 客户端通过代码操作远程服务器端数据库(MySQL)

    这篇文章解决两个问题 xff1a 1 在Linux系统下使用vscode用C C 43 开发客户端程序时 xff0c 如何调用mysql库函数 xff1b 2 客户端与远程服务器端的MySQL连接时 xff0c 需要做哪些前期准备工作 xf
  • put操作提示 No such file or directory

    https blog csdn net weixin 33875839 article details 86128344
  • IDEA导入lib目录下的jar包

    https blog csdn net u010286027 article details 85248719 ops request misc 61 amp request id 61 amp biz id 61 102 amp utm
  • MIPS、ARM、X86三大架构

    MIPS ARM X86三大架构 RISC平台的发展已经有长达几十年的历史了 其最早诞生于80年代的MIPS主机 xff0c 随着技术的不断发展 xff0c RISC平台的应用领域逐步扩展 xff0c 小到手机 xff0c 大到工控设备都可
  • 报错:Diamond types are not supported at language level ‘6‘

    在编译时报错 xff1a 这主要是1 6版本的javac exe编译器不支持菱形运算符 xff1b 解决办法 xff1a 1 修改设置settings和项目结构Project Structure中的JDK版本设置 配置IDEA编译器版本 2
  • Ubuntu18.04.3虚拟机安装步骤

    Ubuntu18 04 3虚拟机安装步骤 xff08 图文教程 xff0c 非常详细 xff01 xff01 xff01 xff09 丶无殇的博客 CSDN博客 ubuntu18虚拟机安装
  • 信号包络

    将一段时间长度的高频信号的峰值点连线 xff0c 就可以得到上方 xff08 正的 xff09 一条线和下方 xff08 负的 xff09 一条线 xff0c 这两条线就叫包络线 包络线就是反映高频信号幅度变化的曲线 对于等幅高频信号 xf
  • 归一化函数normalize详解

    opencv 2 归一化函数normalize详解 1 归一化定义与作用 归一化 就是要把需要处理的数据经过处理后 xff08 通过某种算法 xff09 限制在你需要的一定范围内 首先归一化是为了后面数据处理的方便 xff0c 其次是保证程