图像的处理代码.docx

上传人:b****4 文档编号:979526 上传时间:2022-10-14 格式:DOCX 页数:14 大小:1.34MB
下载 相关 举报
图像的处理代码.docx_第1页
第1页 / 共14页
图像的处理代码.docx_第2页
第2页 / 共14页
图像的处理代码.docx_第3页
第3页 / 共14页
图像的处理代码.docx_第4页
第4页 / 共14页
图像的处理代码.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

图像的处理代码.docx

《图像的处理代码.docx》由会员分享,可在线阅读,更多相关《图像的处理代码.docx(14页珍藏版)》请在冰豆网上搜索。

图像的处理代码.docx

图像的处理代码

第三章基于MATLABD的模拟噪声生成

MATLAB图像处理工具箱提供的噪声添加函数imnoise,它可以对图添加一些典型的噪声。

其语法是:

J=imnoise(I,type)

J=imnoise(I,type,parameters)

其功能是:

返回对原图像I添加典型噪声的图像J,参数type和parameters用于确定噪声的类型和相应的参数。

三种典型的噪声:

type=’gaussian’时,为高斯噪声;

type=’salt&pepper’时,为椒盐噪声;

type=’speckle’时,为乘法噪声;

如下程序就实现了对名为‘king’图像的3种噪声污染了的图像:

i=imread('king.jpg');%读取图像

I=rgb2gray(i);

I1=imnoise(I,'gaussian');%加高斯噪声

I2=imnoise(I,'salt&pepper',0.02);%加椒盐噪声

I3=imnoise(I,'speckle');%加乘性噪声

subplot(221),imshow(I);%显示图像I

title('原图像');

subplot(222),imshow(I1);

title('受高斯噪声污染的图像');

subplot(223),imshow(I2);

title('受椒盐噪声污染的图像');

subplot(224),imshow(I3);

title('受乘性噪声污染的图像');

处理结果如图3.1所示:

 

 

图3.1图像添加噪声处理结果

第四章均值滤波处理方法

4.2均值滤波法对图像的处理

在MATLAB图像处理工具箱中,提供了imfilter函数用于实现均值滤波,imfilter的语法格式为:

B=imfilter(A,H)

其功能是,用H模板对图像A进行均值滤波,模板为:

 

取H1,程序如下:

i=imread('king.jpg');%读取图像

I=rgb2gray(i);

I1=imnoise(I,'gaussian');

I2=imnoise(I,'salt&pepper',0.02);

I3=imnoise(I,'speckle');

H1=ones(3,3)/9;%3×3领域模板

J=imfilter(I,H1);%领域平均

J1=imfilter(I1,H1);

J2=imfilter(I2,H1);

J3=imfilter(I3,H1);

subplot(221),imshow(J);

title('原图像滤波后');

subplot(222),imshow(J1);

title('高斯污染图像滤波后');

subplot(223),imshow(J2);

title('椒盐污染图像滤波后');

subplot(224),imshow(J3);

title('乘法污染图像滤波后');

运行结果如图4.3

图4.33×3领域模板处理结果

取H2,程序如下:

i=imread('king.jpg');%读取图像

I=rgb2gray(i);

I1=imnoise(I,'gaussian');

I2=imnoise(I,'salt&pepper',0.02);

I3=imnoise(I,'speckle');

H2=ones(5,5)/25;%5×5领域模板

J=imfilter(I,H2);%领域平均

J1=imfilter(I1,H2);

J2=imfilter(I2,H2);

J3=imfilter(I3,H2);

subplot(221),imshow(J);

title('原图像滤波后');

subplot(222),imshow(J1);

title('高斯污染图像滤波后');

subplot(223),imshow(J2);

title('椒盐污染图像滤波后');

subplot(224),imshow(J3);

title('乘法污染图像滤波后');

运行结果如图4.4:

图4.45×5领域模板处理结果

 

第五章中值滤波处理方法

5.2中值滤波法对图像的处理

MATLAB图像处理工具箱提供了medfilt2函数用于中值滤波。

其语法格式为:

B=medfilt2(A)其功能为:

用3×3的滤波窗口对图像A进行中值滤波;

B=medfilt2(A,[m,n])其功能是:

用大小为m×n的窗口对图像A进行中值滤波;

B=medfilt2(A,'indexed',...)其功能为:

对索引图像A进行中值滤波;

用3×3中值滤波模板和5×5中值滤波模板对图像进行处理,程序如下:

i=imread('king.jpg');

I=rgb2gray(i);I1=imnoise(I,'gaussian');

I2=imnoise(I,'salt&pepper',0.02);

I3=imnoise(I,'speckle');

J1=medfilt2(I1,[3,3]);%3×3中值滤波模板

J2=medfilt2(I2,[3,3]);

J3=medfilt2(I3,[3,3]);

J4=medfilt2(I1,[5,5]);%5×5中值滤波模板

J5=medfilt2(I2,[5,5]);

J6=medfilt2(I3,[5,5]);

figure,subplot(121),imshow(J1);

title('高斯3*3中值滤波后');

subplot(122),imshow(J2);

title('椒盐3*3中值滤波后');

figure,subplot(121),imshow(J3);

title('乘法3*3中值滤波后');

subplot(122),imshow(J4);

title('高斯5*5中值滤波后');

figure,subplot(121),imshow(J5);

title('椒盐5*5中值滤波后');

subplot(122),imshow(J6);

title('乘法5*5中值滤波后');

处理结果如图5.1

 

图5.13×3中值滤波模板和5×5中值滤波模板对图像进行处理

第六章频域低通滤波法

用理想低通滤波器对图像处理,程序如下(以受高斯噪声污染图像为例):

i=imread('king.jpg');

I=rgb2gray(i);

I1=imnoise(I,'gaussian');

s=fftshift(fft2(I1));

[a,b]=size(s);

a0=round(a/2);

b0=round(b/2);

d0=10;%这里d取10和50作比较

fori=1:

a

forj=1:

b

d=sqrt((i-a0)^2+(j-b0)^2);

ifd<=d0,h=1;

elseh=0;

end;

s(i,j)=h*s(i,j);

end;

end;

s=uint8(real(ifft2(ifftshift(s))));

subplot(121),imshow(I1);

title('受高斯噪声污染后的图像');

subplot(122),imshow(s);

title('高斯污染图像滤波后');

处理结果如图6.3所示:

 

图6.3理想低通滤波器处理结果

 

6.2巴特沃思低通滤波器(BLPF)对图像的处理

用巴特沃斯滤波器对图像处理,程序如下(以受高斯噪声污染图像为例):

i=imread('king.jpg');

I=rgb2gray(i);

I1=imnoise(I,'gaussian');

s=fftshift(fft2(I1));

[a,b]=size(g);

n=1;%这里阶次n取1和3做比较

d0=50;%此处d0为截止频率

n1=fix(a/2);

n2=fix(b/2);

fori=1:

a

forj=1:

b

d=sqrt((i-n1)^2+(j-n2)^2);

h=1/(1+0.414*(d/d0)^(2*n));

s(i,j)=h*s(i,j);

end

end

s=uint8(real(ifft2(ifftshift(s))));

subplot(121),imshow(I1);

title('受高斯噪声污染的图像');

subplot(122),imshow(s);

title('高斯污染图像处理后');处理后结果如图6.5所示:

图6.5巴特沃斯低通滤波器处理结果

6.3指数滤波器(ELPF)对图像的处理

用指数低通滤波器对图像处理,程序如下(以受高斯噪声污染图像为例):

i=imread('king.jpg');

I=rgb2gray(i);

I1=imnoise(I,'salt&pepper',0.02);

s=fftshift(fft2(I1));

[a,b]=size(g);

n=1;%这里阶次n取1和3做比较

d0=50;%此处d0为截止频率

n1=fix(a/2);

n2=fix(b/2);

fori=1:

a

forj=1:

b

d=sqrt((i-n1)^2+(j-n2)^2);

h=exp(-0.347*(d/d0)^n);

s(i,j)=h*s(i,j);

end;

end;

s=uint8(real(ifft2(ifftshift(s))));

subplot(121),imshow(I1);

title('受高斯噪声污染的图像');

subplot(122),imshow(s);

title('高斯污染图像处理后');

处理结果如图6.7所示.

图6.7指数低通滤波器处理结果

6.4梯形滤波器(TLPF)对图像的处理

用梯形低通滤波器对图像处理,程序如下(以受高斯噪声污染图像为例):

i=imread('king.jpg');

I=rgb2gray(i);

I1=imnoise(I,'salt&pepper',0.02);

s=fftshift(fft2(I1));

[a,b]=size(s);

a0=round(a/2);

b0=round(b/2);

d0=10,d1=50;%这里d取10和50作比较

fori=1:

a

forj=1:

b

distance=sqrt((i-a0)^2+(j-b0)^2);

ifdistance<=d0,h=1;

elseifdistance>=d1,h=0;

elseh=1-(d-d0)/(d1-d0);

end;

end;

s(i,j)=h*s(i,j);

end;

end;

s=uint8(real(ifft2(ifftshift(s))));

subplot(121),imshow(I1);

title('受高斯噪声污染的图像');

subplot(122),imshow(s);

title('高斯污染图像处理后');

处理结果如图6.9所示

图6.9梯形低通滤波器对图像的处理结果

6.5构建二维滤波器对图像的处理

首先构建二维滤波器d,传递函数如图6.10所示;

[f1,f2]=freqspace(25,'meshgrid');

Hd=zeros(25,25);

d=sqrt(f1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1