進(jìn)一步討論圖像進(jìn)行歸一化_第1頁
進(jìn)一步討論圖像進(jìn)行歸一化_第2頁
進(jìn)一步討論圖像進(jìn)行歸一化_第3頁
進(jìn)一步討論圖像進(jìn)行歸一化_第4頁
進(jìn)一步討論圖像進(jìn)行歸一化_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、在許多圖像處理系統(tǒng)中,對圖像進(jìn)行歸一化都是必備的預(yù)處理過程。一般而言,對于灰度圖像(或彩色通道的每個顏色分量)進(jìn)行灰度歸一化就是:使其像素的灰度值分布在0255之間,避免圖像對比度不足(圖像像素亮度分布不平衡)從而對后續(xù)處理帶來干擾。一種常見的圖像歸一化原理1是y=(x-MinValue)/(MaxValue-MinValue) 其中x、y分別為歸一化前、歸一化后的值,MaxValue、MinValue分別為原始圖像灰度的最大值和最小值。源碼示例(這里包含了三種方法:前兩種是編程實現(xiàn)2,最后一種直接調(diào)用MATLAB函數(shù)來實現(xiàn)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 原文: 版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!再議Matlab歸一化函數(shù)2015年01

5、月08日 19:46:14 妖孽橫生 閱讀數(shù):3374在最新版的matlab里面共有兩個歸一化函數(shù):mapminmax()和mapstd()。mapminmax()函數(shù)將數(shù)據(jù)歸一化到-1 1(默認(rèn)也可自己調(diào)參數(shù))。mapstd()函數(shù)將數(shù)據(jù)歸一化成零均值和單位方差。(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轉(zhuǎn)換函數(shù):y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;(x為轉(zhuǎn)化前的數(shù)y為轉(zhuǎn)化后的數(shù))xrange=xmax-xmin, yrange=ymax-ymin(2)默認(rèn)歸一化到-1 1也可以自己設(shè)置

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采用了某種規(guī)范化的方式, 現(xiàn)在我要對b采用同樣的規(guī)范化方式同樣的映射,如下可辦到: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的歸一化函數(shù)去歸一化b后,得到的b的歸一化范圍也屬于a歸一化后的范圍(-1 1)。為什么要歸一化?歸一化就是要把你需要處理的數(shù)據(jù)經(jīng)過處理后(通過某種算法)限制在你需要的一定范圍內(nèi)。首先歸一化是為了后面數(shù)據(jù)處理的方便,其次是保正程序運行時收斂加快。(在一般的神經(jīng)網(wǎng)絡(luò)中歸一化就是應(yīng)該先把訓(xùn)練樣本歸一化,然后使用訓(xùn)練樣本的最大值、最小值等信息對測試樣本進(jìn)行歸一化。)歸一化(歸一化+中心化即為標(biāo)準(zhǔn)化)的作用那就是將每一變數(shù)的重要性都在同等條件下進(jìn)行比較。在主成分、聚類分析等多變數(shù)分析中,分析結(jié)果將完全依賴于各變數(shù)的變異度,或各

12、變數(shù)對分析結(jié)果的相對重要性完全取決于該變數(shù)的變異度。而實際數(shù)據(jù)的變異度由于量綱的關(guān)系會有不同的數(shù)據(jù)尺度,比如個體重這樣一個變數(shù),可以以克為單位,也可以以公斤(噸)為單位,但它們的方差相差1M(1e12)倍,而不同的變數(shù)有不同的單位(量綱),因此它們數(shù)值的變異與它們的重要性不一定相稱。進(jìn)行標(biāo)準(zhǔn)化即把各變數(shù)作等重要性處理。但如前所述,這種方法在有些時候也不一定合理。為什么要用歸一化呢?首先先說一個概念,叫做奇異樣本數(shù)據(jù),所謂奇異樣本數(shù)據(jù)數(shù)據(jù)指的是相對于其他輸入樣本特別大或特別小的樣本矢量。下面舉例:m=0.11 0.15 0.32 0.45 30;      

13、;0.13 0.24 0.27 0.25 45;其中的第五列數(shù)據(jù)相對于其他4列數(shù)據(jù)就可以成為奇異樣本數(shù)據(jù)(下面所說的網(wǎng)絡(luò)均值bp)。奇異樣本數(shù)據(jù)存在所引起的網(wǎng)絡(luò)訓(xùn)練時間增加,并可能引起網(wǎng)絡(luò)無法收斂,所以對于訓(xùn)練樣本存在奇異樣本數(shù)據(jù)的數(shù)據(jù)集在訓(xùn)練之前,最好先進(jìn)形歸一化,若不存在奇異樣本數(shù)據(jù),則不需要事先歸一化。概括起來就是:主要原因是消除不同維度數(shù)據(jù)之間的差異,還以加快訓(xùn)練算法的收斂速度需要說明的事并不是任何問題都必須事先把原始數(shù)據(jù)進(jìn)行規(guī)范化,也就是數(shù)據(jù)規(guī)范化這一步并不是必須要做的,要具體問題具體看待,測試表明有時候規(guī)范化后的預(yù)測準(zhǔn)確率比沒有規(guī)范化的預(yù)測準(zhǔn)確率低很多.就最大最小值法而言,當(dāng)你用這

14、種方式將原始數(shù)據(jù)規(guī)范化后,事實上意味著你承認(rèn)了一個假設(shè)就是測試數(shù)據(jù)集的每一模式的所有特征分量的最大值(最小值)不會大于(小于)訓(xùn)練數(shù)據(jù)集的每一模式的所有特征分量的最大值(最小值),但這條假設(shè)顯然過于強,實際情況并不一定會這樣.使用平均數(shù)方差法也會有同樣類似的問題.故數(shù)據(jù)規(guī)范化這一步并不是必須要做的,要具體問題具體看待. (引用:使用Y,PS=mapminmax(x1)函數(shù)對訓(xùn)練樣本x1歸一化之后,再利用mapminmax('apply',x2,PS)對測試樣本x2進(jìn)行歸一化,但是測試樣本歸一化的結(jié)果不一定在-1,1之間,測試樣本的最大最小值有可能比訓(xùn)練樣本的大或小。如

15、果測試樣本歸一化的結(jié)果不在-1,1之間則說明:前后數(shù)據(jù)的變異度不一致,即歸一化不到相同的范圍內(nèi),則不歸一化是比較明智的選擇。我們可以用reverse參數(shù)對歸一化后的數(shù)據(jù)進(jìn)行逆操作,得到歸一化前的數(shù)據(jù),例: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()函數(shù),唯一的不同就是使用的歸一化函數(shù)規(guī)則不同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為轉(zhuǎn)換前a向量的均值(mean(a)),xstd為轉(zhuǎn)化前a向量的樣本標(biāo)準(zhǔn)差(std(a)注:分母為樣本數(shù)-1)。ymean為轉(zhuǎn)換后pn向量的均值((-1.3389+0.8836-0.7328+0.8971+0.2910)/5=0),ystd為轉(zhuǎn)換后pn的標(biāo)準(zhǔn)差(std(pn)=1)y2 = mapst

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論