数字图像处理课程设计

更新时间:2023-09-27 10:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目的与要求 设计的内容 总体方案设计

各个功能模块的主要实现程序以及测试和调试 课程设计总结与体会

一、

目的与要求

提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。开发工具可以选用matlab、VC++、 VB、 C#等。本人选用matlab作为编程开发工具。

二、 设计的内容

刚获得的图像有很多的噪声,这是由平时的工作和环境引起的,图像增强是减弱噪音,增强对比度。想得到比较干净清晰的图像并不是容易的事情。为这个目标而为处理图像所涉及的操作是设计一个适合、匹配的滤波器和恰当的阈值。这就是所谓的图像滤波研究。

本设计就是用图像平均、平滑滤波、中值滤波、理想低通滤波方法、巴特沃斯滤波方法五种方法来实现图像滤波处理。 三、 总体方案设计

首先找一幅图像,然后对图像加噪声,获得加噪图像。然后分别选用以下五种方法进行图像滤波处理的研究。

用图像平均的方法消除噪声并计算信噪比的改善。 用平滑滤波方法消除噪声并计算信噪比的改善 用中值滤波方法消除噪声并计算信噪比的改善

用理想低通滤波方法消除噪声并计算信噪比的改善 用巴特沃斯低通滤波方法消除噪声并计算信噪比的改善

然后改变图像的加噪类型,通过分析比较各种滤波结果,总结各种滤波方法的适用范围。

在该设计中,所采用的噪声类型主要有:高斯噪声,椒盐噪声。

四、 各个功能模块的主要实现程序以及测试和调试 1、用图像平均的方法消除噪声并计算信噪比的改善。 M文件:

I=imread('circuit.tif');

J=imnoise(I,'gaussian',0,0.01);

subplot(231),imshow(I);%title('yuanshituxiang'); subplot(232),imshow(J);%title('添加椒盐噪声的图像'); k1=filter2(fspecial('average',3),J);%进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),J);%进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),J);%进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),J);%进行9*9模板平滑滤波 subplot(233),imshow(uint8(k1));%title('3*3模板平滑滤波'); subplot(234),imshow(uint8(k2));%title('5*5模板平滑滤波'); subplot(235),imshow(uint8(k3));%title('7*7模板平滑滤波'); subplot(236),imshow(uint8(k4));%title('9*9模板平滑滤波'); k=8;fmax=2^k-1 s=0; d=0;

for i=1:M

for j=1:N

y=double(I(i,j))-double(J(i,j)); s=s+double(y^2); end end

PSNR1=10*LOG10(N*M*fmax^2/s); i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR2=10*log10(N*M*fmax^2/d); Y=PSNR2-PSNR1; Y

该liangxujiao.m文件运行后的结果

峰值信噪比PSNR Y =11.7799

2、用平滑滤波方法消除噪声并计算信噪比的改善 M文件编写

I=imread('circuit.tif');

J=imnoise(I,'gaussian',0,0.01);

subplot(231),imshow(I);%title('yuanshituxiang'); subplot(232),imshow(J);%title('添加椒盐噪声的图像'); k1=filter2(fspecial('average',3),J);%进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),J);%进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),J);%进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),J);%进行9*9模板平滑滤波 subplot(233),imshow(uint8(k1));%title('3*3模板平滑滤波'); Q1=uint8(k1);

subplot(234),imshow(uint8(k2));%title('5*5模板平滑滤波'); Q2=uint8(k2);

subplot(235),imshow(uint8(k3));%title('7*7模板平滑滤波'); Q3=uint8(k2);

subplot(236),imshow(uint8(k4));%title('9*9模板平滑滤波'); Q4=uint8(k2); k=8;fmax=2^k-1; s=0; d=0;

for i=1:M

for j=1:N

y=double(I(i,j))-double(J(i,j)); s=s+double(y^2); end end

PSNR1=10*LOG10(N*M*fmax^2/s); i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q1(i,j)); d=d+double(y^2); end end

PSNR2=10*log10(N*M*fmax^2/d); Y1=PSNR2-PSNR1; Y1

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR3=10*log10(N*M*fmax^2/d); Y2=PSNR3-PSNR1; Y2

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR4=10*log10(N*M*fmax^2/d); Y3=PSNR4-PSNR1; Y3

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR5=10*log10(N*M*fmax^2/d); Y4=PSNR5-PSNR1; Y4

该liangxujiao.1M文件执行结果

峰值信噪比PSNR

Y1 =7.9837; Y2 =6.4535; Y3 =5.3242; Y4 =4.4288; 3、用中值滤波方法消除噪声并计算信噪比的改善 M文件编写

I=imread('circuit.tif');

J=imnoise(I,'gaussian',0,0.01);

subplot(231),imshow(I);%title('原始图像');

subplot(232),imshow(J);%title('添加椒盐噪声的图像'); k1=medfilt2(J);

k2=medfilt2(J,[5 5]); k3=medfilt2(J,[7 7]); k4=medfilt2(J,[7 7]);

subplot(233),imshow(k1);%title('3*3模板中值滤波'); Q1=k1;

subplot(234),imshow(k2);%title('5*5模板中值滤波');

Q2=k2;

subplot(235),imshow(k3);%title('7*7模板中值滤波'); Q3=k3;

subplot(236),imshow(k4);%title('9*9模板中值滤波'); Q4=k4;

k=8;fmax=2^k-1; s=0; d=0;

for i=1:M

for j=1:N

y=double(I(i,j))-double(J(i,j)); s=s+double(y^2); end end

PSNR1=10*LOG10(N*M*fmax^2/s); i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q1(i,j)); d=d+double(y^2); end end

PSNR2=10*log10(N*M*fmax^2/d); Y1=PSNR2-PSNR1; Y1

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR3=10*log10(N*M*fmax^2/d); Y2=PSNR3-PSNR1; Y2

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR4=10*log10(N*M*fmax^2/d); Y3=PSNR4-PSNR1;

Y3

i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR5=10*log10(N*M*fmax^2/d); Y4=PSNR5-PSNR1; Y4

该liangxujiao.2M文件执行结果

峰值信噪比PSNR

Y1 =6.5628;Y2 =5.4176;Y3 =4.5122;Y4 =3.7634; 4、用理想低通滤波方法消除噪声并计算信噪比的改善 M文件编写

%理想低通滤波器所产生的模糊和振铃现象 I=imread('circuit.tif'); subplot(131),imshow(I); I=double(I);

%采用傅里叶变换 f=fft2(I); %数据矩阵平衡 g=fftshift(f);

subplot(132),imshow(log(abs(g)),[]);color(jet(64)); [M,N]=size(f); n1=floor(M/2); n2=floor(N/2); % d0=5,15,45,65 d0=5;

for i=1:N

for j=1:N

d=sqrt(i-n1)^2+(j-n2)^2; if d<=d0 h=1; else

h=0; end

g(i,j)=h*g(i,j); end end

g=ifftshift(g);

g=uint8(real(ifft2(g))); subplot(133); imshow(g); J=g;

k=8;fmax=2^k-1 s=0; d=0;

for i=1:M

for j=1:N

y=double(I(i,j))-double(J(i,j)); s=s+double(y^2); end end

PSNR1=10*LOG10(N*M*fmax^2/s); Y=PSNR2-PSNR1; Y

该liangxujiao3.m运行结果

峰值信噪比PSNR Y =13.9687 2、巴特沃斯低通滤波方法

I = imread('eight.tif'); J = imnoise(I,'gaussian');

subplot(1,2,1);imshow(I);title('原图像');

subplot(1,2,2);imshow(J);title('加高斯白噪声后的图像'); figure;

J=double(J); f=fft2(J);

g=fftshift(f); [M,N]=size(f); n=3; d0=20;

n1=floor(M/2); n2=floor(N/2); for i=1:M for j=1:N

d=sqrt((i-n1)^2+(j-n2)^2); h=1/(1+(d/d0)^(2*n));

g(i,j)=h*g(i,j); end end

g=ifftshift(g);

Q=uint8(real(ifft2(g)));

imshow(Q);title('通过截断频率为20的理想巴特沃兹滤波器后的图像'); s=0; d=0;

for i=1:M

for j=1:N

y=double(I(i,j))-double(J(i,j)); s=s+double(y^2); end end

PSNR1=10*LOG10(N*M*fmax^2/s); i=0;j=0; for i=1:M

for j=1:N

y=double(I(i,j))-double(Q(i,j)); d=d+double(y^2); end end

PSNR2=10*log10(N*M*fmax^2/d); Y=PSNR2-PSNR1; Y

Y = 5.5899 五、

课程设计总结与体会

图像平均的方法对消除高斯随机噪声很有帮助; 线性平滑滤波的方法(线性低通滤波器)用滤波模板确定的领域内像素的平均灰度值去代替图像中的每一个像素点的值,这种处理减少了图像灰度的“尖锐”变化。也可以称作领域平均。但是领域平均抑制了噪声同时也引起了模糊,模糊程度与领域半径成正比。

中值滤波(非线性滤波方法)在一定的条件下可以克服线性滤波如平均值滤波(平滑滤波)等所带来的图像细节模糊问题。这种滤波方法对消除椒盐噪声很有效。但对某些细节多(特别是点、线、尖顶)的图像不宜采用中值滤波方法。

理想低通滤波器和巴特沃斯低通滤波器对对应傅里叶变换中的高频部分(图像的边缘和噪声)有很好的截止作用,但低通滤波器有明显的振铃现象. 巴特沃斯低通滤波器的振铃现象不明显。

本文来源:https://www.bwwdw.com/article/zd4d.html

Top