数字信号处理.docx
《数字信号处理.docx》由会员分享,可在线阅读,更多相关《数字信号处理.docx(20页珍藏版)》请在冰豆网上搜索。
数字信号处理
摘要:
随着多媒体技术和网络技术的快速发展,数字图像处理已经广泛应用到了人类社会生活的各个方面,已在国家安全、经济发展、日常生活中充当越来越重要的角色。
数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术,图像处理的信息量很大,对处理速度的要求也比较高。
而Matlab强大的运算和图形展示功能,使图像处理变得更加的简单和直观。
本次实习主要是对图像信号的采集、处理、传输、存储和分析等有一个系统的认识和理解,利用设计的系统实现图像文件的打开,掌握最基本的图像信号处理理论和方法,如对图像的几何变换,加入简单噪声,随机噪声,对图像进行滤波等。
关键词:
多媒体技术;网络技术;数字图像处理;Matlab;
目录
1设计课题与要求1
1.1课题简介1
1.2设计目标与要求1
2系统分析1
3总体方案2
4代码编写与运行结果2
4.1打开2
4.2滤波3
4.3锐化6
4.4增强图像7
4.5频域低通滤波8
4.6频域图谱9
4.7加噪10
4.8几何变换11
5程序调试14
总结16
致谢17
参考文献18
1设计课题与要求
1.1课题简介
数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
一般来讲,对图像进行处理(或加工、分析)的主要目的有三个方面:
(1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。
(2)提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。
(3)图像数据的变换、编码和压缩,以便于图像的存储和传输。
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。
随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大。
1.2设计目标与要求
研究图像信号的特点,探讨图像谱分析、浏览、空频域变换等基本理论基础、关键技术。
使软件具有美观的界面,所有参数设置力求可动态修改;软件具备几何变换、空域滤波、频域滤波等功能,可由用户在运行时通过“打开”对话框自行选择图像文件;可以显示空域图像、滤波器频响、频域图谱(幅度、相位)等;可加入简单噪声(定量信号)、随机噪声(高斯噪声等),并进行去噪处理。
2系统分析
打开功能中用uigetfile函数进行调用,可以选择任意图片;滤波主要用了imfilter函数;中值滤波先用imnoise函数加入高斯噪声,再用medfilt函数进行中值滤波;均值滤波先用rgb2gray(I)函数,将其转化为灰度图像,再用imnoise函数加入椒盐噪声,最后用filter2函数进行均值滤波;彩图锐化先用h=[1,2,1;0,0,0;-1,-2,-1]这个Sobel算子,然后用imfilter函数使用二维滤波器进行锐化;一阶微分锐化先用imgGray=rgb2gray(I)转为灰度图像,再用h=[1,2,1;0,0,0;-1,-2,-1]Sobel算子;增强函数用imadjust函数;频域低通滤波用freqspace函数;频域图谱中取幅度用abs(fftshift(Ik))函数,取相位用angle(Ik)函数,相位逆变换用ifft2(exp(j*p))函数,幅度逆变换用ifft2(A)函数;加噪中高斯噪声是gaussian,椒盐噪声是salt&pepper,乘性噪声是speckle;平移用translate函数,缩小用imresize函数,水平反射和垂直反射取镜像,旋转用imrotate函数。
3总体方案
任务书中要求选取4幅以上图像资料用作测试素材,就得首先设置打开图像这一模块,因为要任意,所以所以我用了uigetfile这个函数,调入某文件,这样就会打开一个文件,然后可以随机选择一张图片。
然后根据任务书上的要求,对图像进行滤波,锐化,加噪,低通滤波,几何变换,绘出图像的频域图谱等等。
其中滤波分为中值滤波和均值滤波;锐化分为一阶微分和二阶微分,以及彩图锐化;加噪又加了高斯噪声,椒盐噪声和乘性噪声;频域图谱中的取幅度利用了傅里叶的移位实现的。
频域低通滤波是分别对加了高斯噪声,椒盐噪声和乘性噪声进行低通滤波的。
几何变换分为了平移,缩小,水平反射,垂直反射,旋转。
4代码编写与运行结果
4.1打开
[filename,pathname]=uigetfile({...%调入某文件
'*.*','AllFiles(*.*)';},...
'________');
ifisequal([filename,pathname],[0,0])return
else_______
pic=fullfile(pathname,filename);
b=imread(pic);
imshow(b);
End
图3.1
4.2滤波
clearall;
RGB=imread('lena.bmp');
H=ones(5,5)/25;
RGB1=imfilter(RGB,H);
subplot(1,2,1);
imshow(RGB);
title('滤波前图像');
subplot(1,2,2);
imshow(RGB1);
title('滤波后图像');
图3.2
4.2.1中值滤波
I=imread('lena.bmp');
subplot(2,2,1)
imshow(I);
title('原图')
J=imnoise(I,'gaussian',0.02);%加入高斯噪声
subplot(2,2,2)
imshow(J);
title('加噪图');
g1=medfilt2(J(:
:
1));%红
g2=medfilt2(J(:
:
2));%绿
g3=medfilt2(J(:
:
3));%蓝
G(:
:
1)=g1;
G(:
:
2)=g2;
G(:
:
3)=g3;
subplot(2,2,3)
imshow(G)
title('中值滤波结果');
图3.2.1
4.2.2均值滤波
I=imread('lena.bmp');
subplot(231)
imshow(I)
title('原始图像')
I=rgb2gray(I);%转换为灰度图像
I1=imnoise(I,'salt&pepper',0.02);
subplot(232);
imshow(I1);
title('添加椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255;%3*3模块
k2=filter2(fspecial('average',5),I1)/255;%5*5模块
k3=filter2(fspecial('average',7),I1)/255;%7*7模块
k4=filter2(fspecial('average',9),I1)/255;%9*9模块___
subplot(233),imshow(k1);title('3*3滤波');
subplot(234),imshow(k2);title('5*5滤波');
subplot(235),imshow(k3);title('7*7滤波');
subplot(236),imshow(k4);title('9*9滤波');
图3.2.2
4.3锐化
4.3.1彩图锐化
clearall;
I=imread('lena.bmp');
subplot(1,2,1);
imshow(I);
h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子
J=imfilter(I,h);%使用二维滤波器进行锐化
subplot(1,2,2);
imshow(J);
图3.3.1
4.3.2一阶微分锐化
clearall;
I=imread('lena.bmp');
subplot(1,2,1);
imshow(I);
imgGray=rgb2gray(I);%转为灰度图像
h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子
J=filter2(h,imgGray);
subplot(1,2,2);
imshow(J);
图3.3.2
4.4增强图像
clearall;
I=imread('lena.bmp');
subplot(2,2,1);
imshow(I);title('原图');
J=imadjust(I,[0.30.7],[01],1);
subplot(2,2,2);
imshow(J);title('gamma=1');
J=imadjust(I,[0.30.7],[01],0.5);
subplot(2,2,3);
imshow(J);title('gamma=0.5');
J=imadjust(I,[0.30.7],[01],1.5);
subplot(2,2,4);
imshow(J);title('gamma=1.5');
图3.4
4.5频域低通滤波
[f1,f2]=freqspace(25,'meshgrid');
Hd=zeros(25,25);
d=sqrt(f1.^2+f2.^2)<0.5;
Hd(d)=1;
h=fsamp2(Hd);
figure,freqz2(h,[64,64]);
I=imread('lena.bmp');
I1=imnoise(I,'gaussian');
I2=imnoise(I,'salt&pepper',0.02);
I3=imnoise(I,'speckle');
J=imfilter(I,h,'replicate');
J1=imfilter(I1,h,'replicate');
J2=imfilter(I2,h,'replicate');
J3=imfilter(I3,h,'replicate');
subplot(221),imshow(J);
subplot(222),imshow(J1);
subplot(223),imshow(J2);
subplot(224),imshow(J3);
图3.5
4.6频域图谱
i=imread('lena.bmp');
I=rgb2gray(i);
subplot(2,3,1);imshow(I);title('原图');
Ik=fft2(double(I));
A=abs(fftshift(Ik));%取幅度
subplot(2,3,2);
imshow(log(A+1),[])%显示幅度谱
title('幅度谱');
p=angle(Ik);%取相位
iA=ifft2(A);
iP=ifft2(exp(j*p));%相位逆变换
subplot(2,3,3);imshow(angle(fftshift(Ik)),[]);title('相位谱');
subplot(2,3,4);imshow(log(1+abs(iA)),[]);title('幅度谱逆变换');
subplot(2,3,5);imshow(iP,[]);title('相位谱逆变换');
M=ifft2(abs(Ik).*exp(j*p));%幅度和相位结合
subplot(2,3,6);imshow(M,[]);title('还原图');
图3.6
4.7加噪
clearall;
I=imread('lena.bmp');
J1=imnoise(I,'gaussian',0,0.02);%对图像数据添加均值为0,方差为0.02的高斯噪声。
J2=imnoise(I,'salt&pepper',0.02);%对图像数据添加椒盐噪声。
J3=imnoise(I,'speckle',0.02);%对图像数据添加乘性噪声。
subplot(2,2,1),imshow(I);
subplot(2,2,2),imshow(J1);
subplot(2,2,3),imshow(J2);
subplot(2,2,4),imshow(J3);
图3.7
4.8几何变换
4.8.1平移
clearall;
I=imread('lena.bmp');
globalI;
se=translate(strel
(1),[2020]);%平移
J=imdilate(I,se);%膨胀
imshow(J),title('平移');
图3.8.1
4.8.2缩小
clearall;
I=imread('lena.bmp');
J1=imresize(I,0.5,'bilinear');
imshow(I);
title('原图');
figure
(2);imshow(J1);
title('缩小');
图3.8.2
4.8.3水平反射
clearall;
I=imread('lena.bmp');
globalI;
[x,y,z]=size(I);
p=1:
x;
q=1:
y;
w=1:
z;
j(p,y-q+1,w)=I(p,q,w);%镜像
imshow(j),title('水平反射');
图3.8.3
4.8.4垂直反射
clearall;
I=imread('lena.bmp');
globalI;
[x,y,z]=size(I);
p=1:
x;
q=1:
y;
w=1:
z;
j(x-p+1,q,w)=I(p,q,w);%镜像____
imshow(j),title('垂直反射');
图3.8.4
4.8.5旋转
clearall__
I=imread('lena.bmp');
globalI;
prompt={'旋转'};
name='Enter';
numlines=1;
defAns={'45'};
%Resize='on';
u=inputdlg(prompt,name,numlines,defAns,'on');
U=str2num(u{1});
j1=imrotate(I,U,'bilinear');
imshow(j1);
图3.8.5
5程序调试
在打开这个功能中,因为任务书中要求的是选取4幅以上图像资料用作测试素材,所以我用了uigetfile这个函数,调入某文件,这样就会打开一个文件,然后可以随机选择一张图片。
对于滤波,我主要用了RGB的方法,可以明显的看出滤波后的图像相比滤波前的图像比较模糊。
中值滤波,我先对原图加入高斯噪声,然后分别对它进行红,绿,蓝的处理。
均值滤波,先将原图转换为灰度图像,然后加入椒盐噪声的代码,再分别对其进行3*3,5*5,7*7,9*9滤波,从运行的结果看出9*9滤波的效果比3*3的更模糊。
锐化我分为了彩图锐化和一阶微分锐化,两者都用了Sobel算子,彩图锐化使用二维滤波器进行锐化,一阶微分锐化先将它转化为灰度图像。
从增强图像的运行效果可以看出,gamma的值大于1时,效果图变得亮点,gamma的值小于1时,图变的暗一点。
频域低通滤波是分别对三种加了噪声之后的图像进行滤波的。
从频域图谱的结果中,看出了幅度谱,相位谱,幅度谱逆变换和相位谱逆变换,以及通过幅度谱逆变换和相位谱逆变换相结合得到的还原图。
而加噪声这一块,我加了随机噪声高斯噪声,椒盐噪声和乘性噪声。
图像几何变换,我分别对图像进行的平移,缩小,水平反射,垂直反射,旋转,平移主要运用了膨胀理论实现的,旋转可以实现对图像任意角度的旋转,并且默认值是45度。
在该课程设计中,我可以打开任意一张图片,但是只能对一张图片进行处理,本想利用matlab中GUI界面里的axes模块实现效果的,但是试了好多次都没有成功。
还有锐化的二阶微分,参考了ppt上的代码,并添加了将图像转化为灰度图像的代码,但运行的结果还是出错。
总结
这次数字图像处理课程设计不仅巩固了我以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计,我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
同时团结协作能力也是非常重要的,没有同组同学的帮助,我也不可能在这么短的时间内完成这项课程设计。
刚开始选择了这个课题,是由于对图像比较感兴趣,但是到了真正开始做的时候,感觉有点力不从心,特别是一开始不知道无从下手,由于我原先并没有使用过matlab的GUI界面,所以根本不知道代码在哪添加的,后来还是同学告诉我的,所以同学的互相帮助还是很重要的。
这次我所做的图像信号分析与处理主要包括图像的几何变换、空域滤波、频域滤波等功能,使图像可以显示空域图像、滤波器频响、频域图谱(幅度、相位)等;同时可加入简单噪声(定量信号)、随机噪声(高斯噪声等),并进行去噪处理。
老师要求选取4幅以上图像资料用作测试素材,但我却实现不了这一功能,只能对一幅图像做测试,对此我表示很遗憾,还有一些功能因为调试了多次还是运行不成功,所以也就放弃了。
通过这次课程设计我知道了锐化分为一阶微分和二阶微分锐化,滤波器的设计以及滤波分为中值滤波和均值滤波,通过灰度变换增强图像,频域图谱的设计和怎样加噪声,还有一系列对图像的几何变换。
这些我觉得远比课上所学的知识多多了。
现在信号处理在机械振动信号处理与故障分析,医学中的诊断成像,音信号的检测、分析与语音识别,军事领域测试信号的处理和分析,地震信号的获取与分析,数据压缩以及实时处理,信号多路传输,工业过程控制中,各种传感信号的分析与处理,图像处理等方面都有重要的应用,可以说没有它现代社会将瘫痪。
信号处理技术的发展尤其是以DSP芯片为核心构造的数字信号处理技术发展将对人类科技的进步产生巨大的推动作用。
因此我要好好的学好这门学科。
致谢
经过一个星期的忙碌,本次课程设计已经接近尾声,在此,我要感谢每一个帮助过我的人。
首先,我要感谢淮阴工学院、计算机工程学院给我提供这次的实践机会,让我完成了数字图像处理的课程设计,感谢实验室人员提供的实验环境,他们给我们提供了必要的实验器材,提供了很大的方便。
如果没有这些,我就不会完成这次课程设计。
其次我要感谢的是我的指导老师,他的治学严谨和科学研究的精神是我永远学习的榜样,并将积极影响我今后的学习和工作。
老师对我悉心的指导,严格的要求、热情的鼓励,为我的课程设计的顺利完成指出了很好的方向。
再次,我要感谢的是同组同学的互相帮助,在我课程设计期间,她们给了我不少的帮助,特别在某些程序调试时。
然后我要感谢参考文献的原作者和XX,通过网络我查到好多原先根本不知道的知识,也正因为有了那些参考文献的原作者,我才能有资料参考。
在本课程设计完成之际,无论我的设计是否能够真的投入使用,这里面每一个控件的绘制,每一行语句的调试,每一段文本的输入之中都有我辛勤的汗水,一个星期的设计时间虽然短暂,我却从中学到了很多的东西。
我由衷地感谢帮助我完成课程设计的老师和同学。
在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师、同学们致以最诚挚的谢意。
最后,感谢各位老师能在百忙之中对我的课程设计进行审察,由于本人知识有限,不足之在所难免,还请各位老师指正处。
参考文献
1蒋青等.信号处理原理及应用.北京邮电大学出版社,2010
2丁玉美.数字信号处理.西安电子科技大学出版社,1999
3赵健,李勇.数字信号处理.清华大学出版社,2006
4樊昌信,薛向阳.数字图像信号编码最新进展.西安电子科技大学,1993
5宁燕平.图像信号编码技术
(一).电信快报,1994(11)
6李红.自适应数字图像水印技术研究.山东大学,2008