<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于×字形窗口的自適應(yīng)中值濾波算法

          基于×字形窗口的自適應(yīng)中值濾波算法

          作者: 時間:2010-07-08 來源:網(wǎng)絡(luò) 收藏
          2自適應(yīng)的基本原理及改進

          是當前應(yīng)用最廣泛的濾波方法之一,然而,的去噪效果和處理速度依賴于濾波的大小及參與中值計算的像素點數(shù)目。當脈沖噪聲概率小于0.2時,中值濾波是很有效的方法,當脈沖噪聲概率超過0.2時,則使用自適應(yīng)中值濾波方法。

          ×字形的自適應(yīng)中值濾波是對中值濾波的一種改進。相對于中值濾波而言,它能夠處理空間密度更大的沖激噪聲,并且在平滑非沖激噪聲時,還可保存更多的圖像細節(jié);效率方面也較一般的自適應(yīng)中值濾波有所改善。常見及本文提出窗口如圖2所示。



          基本原理如下:

          首先,采用3×3的×字形窗口進行計算,計算圖像的中值濾波值Zmed、最大值濾波值Zmax和最小值濾波值Zmin,并判斷噪聲敏感度,即:如果Zmec,不在Zmax和Zmin之間就自動增加×字形窗口的大小,然后重復(fù)以上的過程;對于Zmed在Zmax和Zmin之間的點先用原像素值與最大濾波值和最小濾波值進行判斷,如果在其間,原值不做修改,反之就用Zmed取代原值。這一過程有如下的作用:

          (1)使得未受脈沖噪聲污染的點不用修改,很好地保護了圖像的點、線等細節(jié)及邊界信息;

          (2)當檢測到的噪聲很強時,自動增大窗口,提高了去噪能力;

          (3)當檢測到的噪聲不是很強時,就不用增加窗口的大小,既體現(xiàn)出自適應(yīng)性,又減少了時間開銷,提高了速度。

          其中,×字形窗口的實現(xiàn)方法如下:

          (1)先得到一個對角矩陣A;

          (2)將對角矩陣A從左向右翻轉(zhuǎn),得到一個矩陣B;

          (3)將矩陣A與矩陣B取或運算,得到X字形矩陣C。

          3基于×字形窗口自適應(yīng)中值濾波的Matlab實現(xiàn)

          中值濾波是數(shù)字圖像處理中一個很重要的部分,Matlab工具箱中有該函數(shù),用到中值濾波算法時可直接調(diào)用。因此,用Matlab編程具有簡單、方便、快捷等優(yōu)點。另外,還可以對其內(nèi)部函數(shù)進行改進。本文的算法就是通過另外編程修改中值濾波有關(guān)的內(nèi)部函數(shù)實現(xiàn)的。下面就是自適應(yīng)中值濾波算法的實現(xiàn)流程,添加新的庫函數(shù)――adpmedianXzi對圖像處理工具箱進行擴展,以實現(xiàn)數(shù)字圖像自適應(yīng)中值濾波(部分偽代碼)。



          4實驗結(jié)果及其分析

          在實驗中,選擇了大小為256×256像素、灰度為256級的Lena圖像。實驗環(huán)境為IBM R52,Matlab7.0軟件。實驗結(jié)果如圖3、圖4所示。


          關(guān)鍵詞: 窗口 中值濾波 算法

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();