switch ud.NoiseType
case ''
noisy=imnoise(orig, 'Salt & Pepper', ud.SaltNPepperDensity);
case ''
noisy=imnoise(orig, 'Gaussian', ud.GaussianMean, ud.GaussianVariance);
case ''
noisy=imnoise(orig, 'Speckle', ud.SpeckleVariance);
end
set(ud.hCorruptedImage, 'Cdata', noisy);
AddNoiseOff_ApplyFilterOn(MyNoiseFig);
set(MyNoiseFig,'Pointer','arrow');
setstatus(MyNoiseFig,'"" .');
ud.CorruptedImageIsStale=0;
set(MyNoiseFig, 'UserData', ud);
drawnow
return;
%
% .
%
function ApplyFilter(MyNoiseFig)
if nargin<1
MyNoiseFig=gcbf;
end
set(MyNoiseFig,'Pointer','watch');
setstatus(MyNoiseFig,'Applying noise removal filter to the corrupted image...');
ud=get(MyNoiseFig,'Userdata');
noisy=getimage(ud.hCorruptedImage);
hood=ud.NeighborhoodSize;
switch ud.FilterType
case ''
filtered=medfilt2(noisy, [hood hood]);
case ''
myfilt=ones(hood)/(hood^2); % Boxcar filter
filtered=filter2(myfilt,noisy,'same');
case ''
filtered=wiener2(noisy,[hood hood]);
end
set(ud.hFilteredImage, 'Cdata', filtered);
setstatus(MyNoiseFig,'');
set(ud.hApplyFilterBtn, 'enable', 'off');