Image denoising - Oracleshrink method
This function used to denoise a noisy image using oraclesoft method
%Using oracle threshold alone
%subband dependent threshold
%Soft and Hard threshold
function [soft_X1,SOFT_PSNR
] = Oracle_soft
(X,Y
)
%One -level decomposition
[CA,CH,CV,
CD] = dwt2
(Y,
'haar');
[ca,ch,cv,
cd] = dwt2
(X,
'haar');
%Call the function to calculate the threshold
T_CH = func_threshold
(CH
);
T1_CH = oracleshrink1
(ca,T_CH
);
T_CV = func_threshold
(CV
);
T1_CV = oracleshrink1
(cv,T_CV
);
T_CD = func_threshold
(CD);
T1_CD = oracleshrink1
(cd,T_CD
);
HH =
uint8(T1_CD
);
HL =
uint8(T1_CV
);
LH =
uint8(T1_CH
);
% Call the function to perfom soft shrinkage
de_CH = soft1
(CH,T1_CH
);
de_CV = soft1
(CV,T1_CV
);
de_CD = soft1
(CD,T1_CD
);
%
%Two -level decomposition
[CA1,CH1,CV1,CD1
] = dwt2
(CA,
'haar');
[ca1,ch1,cv1,cd1
] = dwt2
(ca,
'haar');
%Call the function to calculate the threshold
T_CH1 = func_threshold
(CH1
);
T1_CH1 = oracleshrink1
(ch1,T_CH1
);
T_CV1 = func_threshold
(CV1
);
T1_CV1 = oracleshrink1
(cv1,T_CV1
);
T_CD1 = func_threshold
(CD1
);
T1_CD1 = oracleshrink1
(cd1,T_CD1
);
HH1 =
uint8(T1_CD1
);
HL1 =
uint8(T1_CV1
);
LH1 =
uint8(T1_CH1
);
% Call the function to perfom soft shrinkage
de_CH1 = soft1
(CH1,T1_CH1
);
de_CV1 = soft1
(CV1,T1_CV1
);
de_CD1 = soft1
(CD1,T1_CD1
);
%
%
%Reconstruction for soft shrinkage
X2 = idwt2
(CA1,de_CH1,de_CV1,de_CD1,
'haar');
X1 = idwt2
(X2,de_CH,de_CV,de_CD,
'haar');
SOFT_PSNR = PSNR
(X,X1
);
soft_X1 =
uint8(X1
);
Rate this code snippet:
0
Rating: 0 | Votes: 0
posted by Senthilkumar R