您好, 訪客   登錄/注冊

基于MATLAB的圖像復原設計

來源:用戶上傳      作者:

  摘要:圖像處理是一門迅速發展的學科,在大量領域有著極其廣泛的應用。在景物成像的過程中可能出現的模糊、失真或噪聲還有變形,會導致圖像質量下降,從而降低了圖形的科學性,也造成了經濟損失。本文主要介紹使用matlab中的圖像用戶界面(GUI)程序設計的快速開發環境來搭建,然后在圖形用戶界面中添加控件和程序代碼,從而實現各種算法的圖像復原。
  關鍵詞:圖像復原;MATLAB;GUI
  中圖分類號:G633.7 文獻標識碼:B文章編號:1009-9166(2009)011(c)-0087-01
  
  在實際的日常生活中,人們要接觸很多圖像,畫面。而在景物成像這個過程里可能會出現模糊、失真或混入噪聲,最終導致圖像質量下降,這種現象稱為圖像“退化”。因此我們可以采取一些技術手段來盡量減少甚至消除圖像質量的下降,還原圖像的本來面目,這就是圖像復原。引起圖像模糊有多種多樣的原因,舉例來說有運動引起的,高斯噪聲引起的,斑點噪聲引起的,椒鹽噪聲引起的等等。
  圖像復原的算法:數字圖像復原問題實際上是在一定的準則下,采用數學最優化方法從退化的圖像去推測原圖像的估計問題。不同的準則及不同的數學最優化方法就形成了各種各樣的算法。常見的復原方法有,逆濾波復原算法,維納濾波復原算法,盲卷積濾波復原算法,約束最小二乘濾波復原算法等等。圖像復原是圖像處理中的重要技術。圖像復原的可以在某種意義上對圖像進行改進,既可以改善圖像的視覺效果,又能夠便于后續處理。圖像復原在電子監視、醫療攝像等領域具有重要的用途。
  MATLAB既能進行科學計算,又能開發出所需的圖形界面。圖形用戶界面(GUI)是由光標、菜單、按鍵、窗口、文字說明等對象構成的一個用戶界面。
  MATLAB語言有著和其他高級語言不同的特點,同時它也被稱為第四代計算機語言,MATLAB語言的最大特點是簡單和直接。MATLAB語言中豐富的函數使得開發者無須重復編程,只要簡單的調用就可,它讓人們從原本繁瑣的程序代碼中解放了出來。
  下面來介紹一下實現圖像模糊來然后通過調用MATLAB圖像復原函數來檢測復原功能。
  (1)運動引起的圖像模糊:
  subplot('axes1');
  hold off;
  global A;
  global B;
  xy=inputdlg({'LEN';'THETA'},'please input')%參數輸入
  end
  H=fspecial('motion',x,y);%點擴展函數
  MotionBlur=imfilter(A,H,'replicate');%產生運動模糊圖像
  B=MotionBlur;
  imshow(B);%顯示圖像
  figure;
  subplot(1,2,1),imshow(A),title('模糊前');
  subplot(1,2,2),imshow(B),title('運動模糊后');
  實現圖像復原
  (1)逆濾波復原算法:
  subplot('axes1');
  hold off;
  global A;
  global B;
  xy=inputdlg({'LEN';'THETA'},'please input')%參數輸入
  end
  PSF=fspecial('motion',x,y);%點擴展函數
  [J P]=deconvblind(A,PSF,30);%逆濾波復原
  B=J;
  imshow(B);%顯示處理后的圖像
  figure;
  subplot(1,2,1),imshow(A),title('逆濾波處理前');
  subplot(1,2,2),imshow(B),title('逆濾波處理后');
  (2)維納濾波復原:
  subplot('axes1');
  hold off;
  global A;
  global B;
  xy=inputdlg({'LEN';'THETA'},'please input')%參數輸入
  end
  PSF=fspecial('motion',x,y);%點擴展函數
  Blurred=imfilter(A,PSF,'circular','conv');%模糊化
  wnr=deconvwnr(Blurred,PSF);%維納濾波復原
  B=wnr;
  imshow(B);%顯示處理后的圖像
  figure;
  subplot(1,2,1),imshow(A),title('維納濾波前');
  subplot(1,2,2),imshow(B),title('維納濾波后');
  在實際的檢測中我們發現采用維納濾波復原可以取得比較好的效果,這個算法可以使估計的點擴散函數值更加接近它的真實值。在我們知道模糊圖像的點擴展函數的情況下,可以調用常規的圖像復原算法;而現實里還會遇見不知道點擴展函數的情況,這個時候我們就可以利用盲卷積復原算法。它是利用原始圖像模糊,同時進行清晰圖像的恢復和點擴展函數計算的一種方法。因此,盲卷積復原算法的優點就是,對失真情況還未知的情形下,仍然能夠操作恢復模糊圖像。
  經過測試證明,matlab具有強大的功能,尤其在圖像處理方面具有優勢。本文只涉及了其中的一小部分進行應用,但已經足以看出matlab處理圖像的快速和高效。
  作者單位:浙江傳媒學院
  
  參考文獻:
  [1]賀興華.MATLAB7.x圖像處理[M].人民郵電出版社.2006
  [2]姚敏.數字圖像處理[M].機械工業出版社.2007


轉載注明來源:http://www.hailuomaifang.com/9/view-942166.htm

?
99久久国产综合精麻豆