1. 程式人生 > >影象去噪及其實現

影象去噪及其實現

影象去噪處理方法可分以下兩大類:{在原影象上直接進行資料運算,對畫素的灰度值進行處理在影象的變換域上處理,對變換後的係數進行相應處理,再反變換達到去噪的目的
1
噪聲抑制原理:一般,認為影象的噪聲在離散餘弦變換結果的高頻部分,而高頻部分的幅值一般很小,利用這一性質可實現影象的噪聲抑制。

%DCT變換
Y = dct2(Xnoise); %離散餘弦變換
I = size
(m,n);%m,n為處理影象的大小 %高頻遮蔽 I(1:m/3:n/3) = 1; Ydct = Y.*I; %逆DCT變換 Y = uint8(idct2(Ydct));

2
小波變換去噪可以提取並儲存對視覺其主要作用的邊緣資訊。
基於小波變換的影象去噪技術,主要分以下三步:
(1)二維訊號的小波分解。選擇一個小波和小波分解的層次N,然後計算訊號S到第N層的分解。

%用小波函式coif2對影象XX進行2層
% 分解
[c,l]=wavedec2(XX,2,'coif2'); 
% 設定尺度向量
n=[1,2];      

(2)對高頻係數進行閾值量化。對於從1到N的每一層,選擇一個閾值,並對這層的高頻係數進行軟閾值化處理。

% 設定閾值向量 , 對高頻小波係數進行閾值處理
p=[10.28,24.08]; 
nc=wthcoef2('h',c,l,n,p,'s');

(3)二維小波的重構。

% 影象的二維小波重構
X1=waverec2(nc,l,'coif2');   
subplot(223);              
imshow(uint8(X1));                
%colormap(map);            
title(' 第一次消噪後的影象 '); 
%再次對高頻小波係數進行閾值處理
mc=wthcoef2('v',nc,l,n,p,'s');
% 影象的二維小波重構
X2=waverec2(mc,l,'coif2'); subplot(224); imshow(uint8(X2)); title(' 第二次消噪後的影象 ');