图像分析matlab代码,数字图像处理实验-MATLAB程序代码

选取一幅图像,采用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('中值滤波图像');

0af1fe8ffb0e693b18e3114a69bd020f.png

d48b4206737f4655fcc128c059f7f6fa.png

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('巴特沃斯低通滤波')

5a90e604592cb2c8a2c8779d7859291c.png

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('指数低通滤波')

dadc22d033a0a7b2e909bae98c8f4123.png

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('梯形低通滤波')

4da8e6fbfc3f4fa7fd532157c24d85d9.png

%锐化

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('拉普拉斯算子锐化');

b7a51d24f51308ae9d8c7d68489578a1.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值