图像处理MATLAB-实验.ppt
1,图像处理的MATLAB实现,2,一、读取图像 使用函数imread可以将图像读入MATLAB环境,其语法格式为:imread(filename)其中,filename是一个含有图像文件全名的字符串。,常用图像操作,3,当filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。要想读取指定路径中的图像,最简单的办法就是在filename中输入完整的路径。例如,I=imread(D:myimageslena.bmp);从驱动器D上名为myimages的文件夹中读取图像文件lena.bmp。对于索引色图像,读取格式为:X,map=imread(filename),常用图像操作,4,二、图像显示 imshow是最常用的显示图像的函数,有以下几种格式:imshow(I,n)用于显示灰度图像,n为灰度级数目,默认值为256。在很多情况下,经过处理的图像数据的值域都会发生变化。比如对一幅double类型的灰度图像滤波后,图像数据的值域已不在0,1中了,如果还用前面的显示方法,则得不到正确的结果。,常用图像操作,5,如果清楚地知道数据的值域low high,可以使用命令imshow(I,low high)。否则可用空向量为参数,即imshow(I,)。imshow(BW)用于显示二值图像。imshow(RGB)用于显示真彩色图像。imshow(X,map)用于显示索引色图像。,常用图像操作,6,绘制直方图最简单的方法是使用未指定输出的函数imhist。例:绘制一幅灰度图像的直方图。imhist(I),直方图的绘制,7,直方图均衡化,MATLAB图像处理工具箱提供了用于直方图均衡化的函数histeq,其格式为:J=histeq(I,n)其中,I为输入图像,n为输出图像指定的灰度级数,n的默认值为64。,8,添加噪声,MATLAB图像处理工具箱提供了模拟噪声生成的函数imnoise,它可以对图像添加一些典型的噪声,其格式为:(1)g=imnoise(f,gaussian,m,var)将均值为m、方差为var的高斯噪声加到图像f上。默认值为均值是0,方差是0.01的噪声。(2)g=imnoise(f,salt&pepper,d)将噪声密度为d(即包含噪声值的图像区域的百分比)的椒盐噪声加到图像f上。默认的噪声密度为0.05。,9,添加噪声,(3)g=imnoise(f,speckle,var)用方程 g=f+nf 将乘性噪声添加到图像f上,其中n是均值为0、方差为var的均匀分布的随机噪声。var的默认值为0.04。例:对下面的图像eight.tif分别加入高斯噪声、椒 盐噪声和乘性噪声。,10,添加噪声,I=imread(rice.tif);J1=imnoise(I,gaussian,0,0.02);J2=imnoise(I,salt subplot(2,2,1),imshow(I)subplot(2,2,2),imshow(J1)subplot(2,2,3),imshow(J2)subplot(2,2,4),imshow(J3),11,空间域平滑均值滤波,MATLAB图像处理工具箱提供了基于卷积的图像滤波函数filter2,其格式为:B=filter2(h,A,full)其中,A为输入图像,h为滤波算子,full表示滤波后的图像与原图像A的大小相同。,12,空间域平滑均值滤波,最典型的 S 为33邻域,这时均值滤波的模板为:,这样,将模板在待处理图像中逐点滑动,与图像相卷积,就可得到整幅图像的平滑。,13,空间域平滑均值滤波,例:对一幅灰度图像 lena.bmp 添加高斯噪声,并进行均值滤波。(滤波模板大小为33)I=imread(lena.bmp);subplot(1,3,1),imshow(I)title(原始图像)J=imnoise(I,gaussian,0,0.02);subplot(1,3,2),imshow(J)title(加噪图像),14,空间域平滑均值滤波,I=imread(lena.bmp);h=1 1 1;1 1 1;1 1 1;h=h/9;%产生33的均值滤波模板 J1=filter2(h,J,same);%用均值模板对图像J滤波 subplot(1,3,3),imshow(J1,)title(均值滤波结果),15,空间域平滑中值滤波,MATLAB图像处理工具箱提供了用于实现中值滤波的函数medfilt2,其格式为:B=medfilt2(A,m n)用大小为mn的窗口对图像A进行中值滤波,窗口大小的默认值为33。,16,空间域平滑中值滤波,例:对一幅灰度图像 lena.bmp 添加椒盐噪声,并进行中值滤波。(滤波窗口大小为33)I=imread(lena.bmp);subplot(1,3,1),imshow(I)title(原始图像)J=imnoise(I,salt%用33的滤波窗口对图像J进行中值滤波 subplot(1,3,3),imshow(J1)title(中值滤波结果),17,实验一 空域图像增强,一、实验目的(1)掌握基本的空域图像增强方法,观察图像 增强的效果,加深理解;(2)了解空域平滑模板的特性及其对不同噪声 的影响;(3)了解空域锐化模板的特性及其对边缘的影 响。,18,实验一 空域图像增强,二、实验内容(1)直方图处理:直方图均衡(2)空域平滑:均值滤波、中值滤波;三、实验要求(1)用matlab语言进行仿真实验;(2)递交实验报告,要求给出实验原理、源程序、实验结果及分析。,19,实验一 空域图像增强,四、实验图像,lena.bmp,house.tif,pollen.png,20,实验一 空域图像增强,五、具体实验内容及要求 1.直方图均衡实验内容(1)读入原图像pollen.png并显示原图像以及直方图(2)对原图像进行直方图均衡处理(3)显示均衡后图像以及直方图。,要求:分析直方图能够改善视觉效果的原因,21,实验一 空域图像增强,五、具体实验内容及要求 2.空域平滑实验内容(1)读入原图像lena.bmp并显示;(2)对原图像分别添加高斯噪声和椒盐噪声,并显示 加噪图像;(3)采用均值滤波进行去噪处理,并显示去噪图像;(4)采用中值滤波进行去噪处理,并显示去噪图像。,22,实验一 空域图像增强,要求:(1)观察模板大小(窗口尺寸)对图像去噪效果的影 响(选用33、55、77)。(2)观察均值滤波和中值滤波对不同噪声的滤除效果,