影象去噪及其實現
阿新 • • 發佈:2019-01-05
影象去噪處理方法可分以下兩大類:
噪聲抑制原理:一般,認為影象的噪聲在離散餘弦變換結果的高頻部分,而高頻部分的幅值一般很小,利用這一性質可實現影象的噪聲抑制。
%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));
小波變換去噪可以提取並儲存對視覺其主要作用的邊緣資訊。
基於小波變換的影象去噪技術,主要分以下三步:
(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(' 第二次消噪後的影象 ');