MATLAB图像处理课程设计.doc
“MATLAB仿真软件”课程设计任务书1时间:2011年06月13日2011年06月17日2. 课程设计单位:河南机电高等专科学校3. 课程设计目的:掌握“MATLAB仿真软件”课程的基本概念、基本原理,加深对MATLAB仿真软件应用和理解。4. 课程设计任务:了解MATLAB仿真软件的相关常识及其特点;熟悉MATLAB仿真软件的使用方法;作好实习笔记,对自己所发现的疑难问题及时请教解决参考相关的的书籍、资料,认真完成实训报告;作好笔记,对自己所发现的疑难问题及时请教解决;联系自己所学知识,总结本次设计经验;认真完成课程设计报告。“MATLAB仿真软件”课程设计报告前言:图像增强是指按特定的需要突出一幅图像的某些信息同时削弱或去除某些不需要的信息的处理方法,其目的是使处理后的图像对于某种特定的应用比原始图像更适用。对于一个图像处理系统来说,可将流程分为三个阶段,在获取原始图像后,首先是图像预处理阶段、第二是特征抽取阶段、第三是识别分析阶段。实际应用中,我们的系统获取的原始图像并非完美:例如系统获取的原始图像,由于噪声、光照等原因,使得图像的质量不高,需进行预处理,以达到利于我们提取感兴趣的信息的目的。图像的预处理包括图像增强、平滑滤波、锐化等内容¨J。图像的预处理既可以在空间域实现,也可以在频域内实现,其中空间域内实现是对图像进行点运算,它是一种既简单又重要的图像处理技术,它能让用户改变图像上像素点的灰度值,这样通过点运算处理将产生一幅新图像。MATLAB是一种简单,高效、功能强大的高级语言,在科学与工程计算领域有着广泛的应用前途在数字图像处理领域,可应用MKILAB数字图像处理技术进行系统分析与设计本文介绍了MATLAB提供的图像处理工具箱函数的用法指南,并辅以应用示例,说明了基于MATLAB,进行数字图像处理的方法实例分析1、模拟图像受高斯白噪声和椒盐噪声的影响I=imread('1.jpg');J1=imnoise(I,'gaussian',0,0.02); % 叠加均值为0,方差为0.02的高斯噪声,可以用 % localvar代替,如图3-17(b)所示J2=imnoise(I,'salt & pepper',0.04); % 叠加密度为0.04的椒盐噪声。 % 如图3-17(c)所示。figure,subplot(1,3,1),imshow(I) ;subplot(1,3,2),imshow (J1);subplot(1,3,3),imshow(J2);图1 处理后效果图2、叠加椒盐噪声I=imread('2.jpg');J2=imnoise(I,'salt & pepper',0.14); % 叠加密度为0.04的椒盐噪声。 % 如图3-17(c)所示。figure,subplot(121),imshow(I) ;subplot(122),imshow(J2);图2 处理后效果图3、利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理源程序如下:clearclcI=imread('3.jpg');imshow(I);f=double(I); % 数据类型转换,MATLAB不支持图像的无符号整型的计算g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵M,N=size(g);nn=2; % 二阶巴特沃斯(Butterworth)高通滤波器d0=5;m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); if (d=0) h=0; else h=1/(1+0.414*(d0/d)(2*nn);% 计算传递函数 endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2);figure,imshow(J3); % 滤波后图像显示图3 处理后效果图4、对图像进行置乱处理源程序如下:clearclcX=imread('1.jpg');subplot(121)imshow(X);title('原图像')A=X(:);B=randperm(65536);C=zeros(65536,1);for i=1:65536 C(i)=A(B(i);endD=zeros(256);k=1;for i=1:256 for j=1:256 D(j,i)=C(k); k=k+1; endendsubplot(122)imshow(D)title('置乱后的图像')imwrite(D,'e:image.bmp','bmp') 图4 处理后效果图学习心得在理工科的专业应用背景下,用matlab 进行相关计算与仿真编程的优势非常突出。特定的问题处理算法,我们通常都以M文件的文本形式给定最终的解决方案,自己设计的程序是在MATLAB环境下,用MATLAB语言编写的,这对于有安装MATLAB软件的计算机上运行并不存在什么问题,关键是一般的计算机很少有去安装MATLAB软件的,那么要在这些机子上运行该程序要怎么办呢,难道要先安装MATLAB软件,这显然太麻烦了,对于一个通用的,比较成熟的解决方案,我们当然期望它能应用到更多的场合,而.exe (可执行)文件可运行于所有的通用WINDOWS操作系统,为此,将M文件转换成.exe文件倒是个不错的想法。通过本次课程设计,使自己对MATLAB GUI设计流程有了比较深刻的体会,同时也了解了一般软件设计的过程。在设计过程中碰到了很多的问题,通过这些问题,使自己分析问题,解决问题的能力得到了较大的提高。