选取一幅图像,采用sobel算子,prewitt算子和拉普拉斯算子对图像进行锐化处理
I=imread('2.jpg');
I=rgb2gray(I);
subplot(2,3,1);
imshow(I),title('原图灰度图像');%原图的灰度图像
J=imnoise(I,'salt & pepper',0.04);
subplot(2,3,2);
imshow(J),title('椒盐噪声图像');%加了噪声的图像
J1=double(J)/255;
h1=[1/9 1/9 1/9;1/9 1/9 1/9;1/9 1/9 1/9];%领域运算
I1=conv2(J1,h1,'same');
subplot(2,3,3);
imshow(I1),title('均值滤波图像');%均值滤波图像
I2= medfilt2(J1,[5,5]);%进行二维3*3中值滤波
subplot(2,3,4);
imshow(I),title('原图灰度图像');%原图的灰度图像
subplot(2,3,5);
imshow(J),title('椒盐噪声图像');%加了噪声的图像
subplot(2,3,6);
imshow(I2),title('中值滤波图像');
I=imread('2.jpg');
I=rgb2gray(I);
subplot(1,3,1);
imshow(I),title('原图灰度图像');
J=imnoise(I,'gaussian',0.02);
subplot(1,3,2);
imshow(J),title('加高斯噪声图像');
F=double(J);
G=fft2(F); % 傅立叶变换
G=fftshift(G); % 把快速傅里叶变换的DC组件移到光谱中心
[M,N]=size(I);
js=2; % 二阶
d0=50; %截止频率为30
m=fix(M/2);
n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*js)); % 低通滤波器传递函数
g(i,j)=h*G(i,j);
end
end
%g=h.*G;
result=ifftshift(g);
Y2=ifft2(result);
Y3=uint8(real(Y2));
subplot(1,3,3);
imshow(Y3),title('巴特沃斯低通滤波')
clear all;
I=imread('2.jpg');
I=rgb2gray(I);
subplot(1,3,1);
imshow(I),title('原图灰度图像');
J2=imnoise(I,'gaussian',0.02);
subplot(1,3,2);
imshow(J2),title('加高斯噪声图像');
F=double(J2);
G=fft2(F); % 傅立叶变换
G=fftshift(G); % 把快速傅里叶变换的DC组件移到光谱中心
[M,N]=size(G);
js=2; % 二阶指数低通滤波器
d0=50; %截止频率为30
m=fix(M/2);
n=fix(N/2);
for i=1:M
for j=1:N
D=sqrt((i-m)^2+(j-n)^2);
h1(i,j)=exp(log(1/sqrt(2))*(D/d0)^js);
end
end
g=h1.*G;
result=ifftshift(g);
Y2=ifft2(result);
Y3=uint8(real(Y2));
subplot(1,3,3);
imshow(Y3),title('指数低通滤波')
I=imread('2.jpg'); %读原图
I=rgb2gray(I);
subplot(1,3,1);
imshow(I),title('原图灰度图像');
J2=imnoise(I,'gaussian',0.02); %加均值为0,方差为0.02的高斯噪声。
subplot(1,3,2);
imshow(J2),title('加高斯噪声图像'); %显示有高斯噪声图像
F=double(J2);
G=fft2(F); % 傅立叶变换
G=fftshift(G); % 转换数据矩阵
[M,N]=size(G);
d0=200;
d1=100;
m=fix(M/2); n=fix(N/2);
for i=1:M
for j=1:N
D=sqrt((i-m)^2+(j-n)^2);
h(i,j)=double(D
end
end
% for i=1:M
% for j=1:N
% d=sqrt((i-m)^2+(j-n)^2);
% if d
% h=1;
% elseif d<=d1
% h=(d-d1)/(d0-d1);
% else
% h=0;
% end
% end
% end
g=h.*G
result=ifftshift(g);
Y2=ifft2(result);
Y3=uint8(real(Y2));
subplot(1,3,3);
imshow(Y3),title('梯形低通滤波')
%锐化
i = imread('2.jpg');
I=rgb2gray(i);
subplot(2,2,1),imshow(I),title('原图灰度图像');
I=double(I);
H1=fspecial('sobel');
I1=filter2(H1,I);
subplot(2,2,2),imshow(I1),title('sobel算子锐化');
H2=fspecial('prewitt');
I1=filter2(H2,I);
subplot(2,2,3),imshow(I1),title('prewitt算子锐化');
h=[0 1 0,1 -4 1,0 1 0];
J=conv2(I,h,'same');
K=I-J;
subplot(2,2,4),imshow(K,[]),title('拉普拉斯算子锐化');