图像处理MATLAB实验一pp课件

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