进一步讨论图像进行归一化_第1页
进一步讨论图像进行归一化_第2页
进一步讨论图像进行归一化_第3页
进一步讨论图像进行归一化_第4页
进一步讨论图像进行归一化_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在许多图像处理系统中,对图像进行归一化都是必备的预处理过程。一般而言,对于灰度图像(或彩色通道的每个颜色分量)进行灰度归一化就是:使其像素的灰度值分布在0255之间,避免图像对比度不足(图像像素亮度分布不平衡)从而对后续处理带来干扰。一种常见的图像归一化原理1是y=(x-MinValue)/(MaxValue-MinValue) 其中x、y分别为归一化前、归一化后的值,MaxValue、MinValue分别为原始图像灰度的最大值和最小值。源码示例(这里包含了三种方法:前两种是编程实现2,最后一种直接调用MATLAB函数来实现3,大家可以参考):oriImage = imread('XX

2、XX.jpg');grayImage = rgb2gray(oriImage);figure;imshow(grayImage);originalMinValue = double(min(min(grayImage);originalMaxValue = double(max(max(grayImage);originalRange = originalMaxValue - originalMinValue;% Get a double image in the range 0 to +255desiredMin = 0;desiredMax = 255;desiredRange =

3、 desiredMax - desiredMin;dblImageS255 = desiredRange * (double(grayImage) - originalMinValue) / originalRange + desiredMin;figure;imshow(uint8(dblImageS255);% Get a double image in the range 0 to +1desiredMin = 0;desiredMax = 1;desiredRange = desiredMax - desiredMin;dblImageS1 = desiredRange * (doub

4、le(grayImage) - originalMinValue) / originalRange + desiredMin;figure;imshow(dblImageS1);% Another way to normalazation, which only calls MATLAB functionimg3 = mat2gray(oriImage);figure;imshow(img3);上述源码已在MATLAB 2014和MATLAB 2016上通过测试。- 作者:越野者 来源:CSDN 原文: 版权声明:本文为博主原创文章,转载请附上博文链接!再议Matlab归一化函数2015年01

5、月08日 19:46:14 妖孽横生 阅读数:3374在最新版的matlab里面共有两个归一化函数:mapminmax()和mapstd()。mapminmax()函数将数据归一化到-1 1(默认也可自己调参数)。mapstd()函数将数据归一化成零均值和单位方差。(1)a =   -0.9200    0.7300   -0.4700    0.7400    0.2900y,ps = mapminmax(a)y =   -1.0000    

6、0.9880   -0.4578    1.0000    0.4578ps =          name: 'mapminmax'        xrows: 1         xmax: 0.7400         xmin: -0.9200       xrange: 1.6600

7、        yrows: 1         ymax: 1         ymin: -1       yrange: 2    no_change: 0转换函数:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;(x为转化前的数y为转化后的数)xrange=xmax-xmin, yrange=ymax-ymin(2)默认归一化到-1 1也可以自己设置

8、归一化范围例如:y,ps = mapminmax(a);ps.ymin = 0; y,ps = mapminmax(a,ps)y =         0    0.9940    0.2711    1.0000    0.7289ps =          name: 'mapminmax'        xrows: 1  &#

9、160;      xmax: 0.7400         xmin: -0.9200       xrange: 1.6600        yrows: 1         ymax: 1         ymin: 0       yrange: 1    no_chan

10、ge: 0则a被归一化到0 1。(3)b = 1 2 2 4 9如果我对a采用了某种规范化的方式, 现在我要对b采用同样的规范化方式同样的映射,如下可办到:y,ps = mapminmax(a);y2 = mapminmax('apply',b,ps)y2 =    1.3133    2.5181    2.5181    4.9277   10.9518注意:用a的归一化方程归一化b此时b归一化后的范围不一定和a一样。及如果b中的最大值(最小值)大于(小于)a中的最大值(最小值)时那么

11、b归一化后的范围不等于a(-1 1),此例即是这种情况。如果b属于a那么用a的归一化函数去归一化b后,得到的b的归一化范围也属于a归一化后的范围(-1 1)。为什么要归一化?归一化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。(在一般的神经网络中归一化就是应该先把训练样本归一化,然后使用训练样本的最大值、最小值等信息对测试样本进行归一化。)归一化(归一化+中心化即为标准化)的作用那就是将每一变数的重要性都在同等条件下进行比较。在主成分、聚类分析等多变数分析中,分析结果将完全依赖于各变数的变异度,或各

12、变数对分析结果的相对重要性完全取决于该变数的变异度。而实际数据的变异度由于量纲的关系会有不同的数据尺度,比如个体重这样一个变数,可以以克为单位,也可以以公斤(吨)为单位,但它们的方差相差1M(1e12)倍,而不同的变数有不同的单位(量纲),因此它们数值的变异与它们的重要性不一定相称。进行标准化即把各变数作等重要性处理。但如前所述,这种方法在有些时候也不一定合理。为什么要用归一化呢?首先先说一个概念,叫做奇异样本数据,所谓奇异样本数据数据指的是相对于其他输入样本特别大或特别小的样本矢量。下面举例:m=0.11 0.15 0.32 0.45 30;      

13、;0.13 0.24 0.27 0.25 45;其中的第五列数据相对于其他4列数据就可以成为奇异样本数据(下面所说的网络均值bp)。奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛,所以对于训练样本存在奇异样本数据的数据集在训练之前,最好先进形归一化,若不存在奇异样本数据,则不需要事先归一化。概括起来就是:主要原因是消除不同维度数据之间的差异,还以加快训练算法的收敛速度需要说明的事并不是任何问题都必须事先把原始数据进行规范化,也就是数据规范化这一步并不是必须要做的,要具体问题具体看待,测试表明有时候规范化后的预测准确率比没有规范化的预测准确率低很多.就最大最小值法而言,当你用这

14、种方式将原始数据规范化后,事实上意味着你承认了一个假设就是测试数据集的每一模式的所有特征分量的最大值(最小值)不会大于(小于)训练数据集的每一模式的所有特征分量的最大值(最小值),但这条假设显然过于强,实际情况并不一定会这样.使用平均数方差法也会有同样类似的问题.故数据规范化这一步并不是必须要做的,要具体问题具体看待. (引用:使用Y,PS=mapminmax(x1)函数对训练样本x1归一化之后,再利用mapminmax('apply',x2,PS)对测试样本x2进行归一化,但是测试样本归一化的结果不一定在-1,1之间,测试样本的最大最小值有可能比训练样本的大或小。如

15、果测试样本归一化的结果不在-1,1之间则说明:前后数据的变异度不一致,即归一化不到相同的范围内,则不归一化是比较明智的选择。我们可以用reverse参数对归一化后的数据进行逆操作,得到归一化前的数据,例:a =   -0.9200    0.7300   -0.4700    0.7400    0.2900y,ps = mapminmax(a)y =   -1.0000    0.9880   -0.4578    1.0000 &#

16、160;  0.4578a2 = mapminmax('reverse',y,ps)a2 =   -0.9200    0.7300   -0.4700    0.7400    0.2900类似的有mapstd()函数,唯一的不同就是使用的归一化函数规则不同a =   -0.9200    0.7300   -0.4700    0.7400    0.2900pn,ps = mapstd

17、(a)pn =   -1.3389    0.8836   -0.7328    0.8971    0.2910ps =          name: 'mapstd'        xrows: 1        yrows: 1        xmean: 0.0740         xstd: 0.7424        ymean: 0         ystd: 1    no_change: 0xmean为转换前a向量的均值(mean(a)),xstd为转化前a向量的样本标准差(std(a)注:分母为样本数-1)。ymean为转换后pn向量的均值((-1.3389+0.8836-0.7328+0.8971+0.2910)/5=0),ystd为转换后pn的标准差(std(pn)=1)y2 = mapst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论