一、简介
数字图像在进行数学形态滤波去噪时,根据噪声特点可以尝试采用维数由小到大的结构元素来进行处理,进而达到滤除不同噪声的目的。采用数学形态学的多结构元素,可以更多地保持数字图像的几何特征.
二、源代码
%% Figure 1
A = double(imread('retina.png'));
A = A(:,:,2);
x1=361;y1=493;
x2=289;y2=207;
Z1 = GAN(A,18,y1,x1,'CLIP');
Z2 = GAN(A,18,y2,x2,'CLIP');
Z = Z1+Z2;
figure
subplot(121);
hold on;
imshow(A,[]);
plot(x1,y1,'w*');title('points (x_1,y_1) and (x_2,y_2)')
plot(x2,y2,'w*');
subplot(122);
imshow(max(A,255*Z),[]);title('GANs of (x_1,y_1) and (x_2,y_2)')
%% Figure 2
A = double(imread('lena256.jpg'));
se = strel('disk',2);
A_dilation = imdilate(A,se);
A_erosion = imerode(A,se);
mtol = 20;
A_GANdilation = GANdilation(A,A,mtol,'CLIP');
A_GANerosion = GANerosion(A,A,mtol,'CLIP');
figure
subplot(231);imshow(A,[]);title('original');
subplot(232);imshow(A_dilation,[]);title('classical dilation');
subplot(233);imshow(A_erosion,[]);title('classical erosion');
subplot(235);imshow(A_GANdilation,[]);title('GAN dilation');
subplot(236);imshow(A_GANerosion,[]);title('GAN erosion');
%% Figure 3
A = double(imread('vaisseaux3.png'));
C = floor(imContrasteLIP(A));
B_CLIP = toggleContrastCLIP(A,5);
B_LIP = GANtoggleContrastLIP(A,255-C,30);
figure
subplot(221);imshow(A,[]);title('original');
subplot(222);imshow(C,[]);title('LIP contrast');
subplot(223);imshow(B_CLIP,[]);title('classical toggle contrast');
subplot(224);imshow(B_LIP,[]);title('GAN toggle contrast');
%% Figure 4
A = double(imread('lena256.jpg'));
Anoisy = double(uint8(255*imnoise(A/255,'salt & pepper',0.02)));
fun = @(x) median(x(:));
B = nlfilter(Anoisy,[3 3],fun);
C = GANmedian(Anoisy,Anoisy,20,'CLIP');
D = ZGANmedian(Anoisy,Anoisy,20,'CLIP',4);
figure
subplot(231);imshow(A,[]);title('noise free'); title('original');
subplot(232);imshow(Anoisy,[]);title('noisy');title('noisy');
subplot(234);imshow(B,[]);title('classical median');title('classical median');
subplot(235);imshow(C,[]);title('GAN median');title('GAN median');
subplot(236);imshow(D,[]);title('Z-GAN median');title('Z-GAN median');
三、运行结果
三、备注
版本:2014a