《数字图像处理》实验指导书信息工程学院电子信息工程系上课地点:7042014.5目录实验一图像基本操作 (1)实验二图像运算 (3)实验三图像增强——空域滤波 (5)实验四图像的傅立叶变换 (7)实验五图像增强——频域滤波 (9)实验六图像分割 (12)综合实验 (15)实验一图像基本操作一、实验目的了解MatLab软件/语言,学会使用MatLab的图像处理工具箱(Image Processing Toolbox),使学生初步具备使用该软件处理图像信息的能力,并能够利用该软件完成本课程规定的其他实验和作业。
熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换二、实验要求在MATLAB环境下完成下列操作:1、读入图像;2、保存图像;3、图像的显示方法三、实验方法使用函数imread可以将图像读入MATLAB环境,imread的语法为:imread( ‘filename’ )imread所支持的文件格式包括:TIFF---------- .tif .tiffJPEG-------- .jpg .jpegGIF----------- .gifBMP--------- .bmpPNG--------- .pngXWD--------- .xwd使用函数imwrite可以将图像保存在磁盘上,imwrite的语法为imwrite( f, ‘filename’ )使用函数size可以察看图像大小,size的语法为size( )使用函数imfinfo可以察看图像信息,imfinfo的语法为imfinfo filename使用函数imshow 可以显示图像缩略图,imshow 的语法为imshow ( )使用函数imview 可以显示图像原图,imview 的语法为imview ( )使用函数figure可以开辟一个新的窗口,figure的语法为figure, imshow ( )figure, imview ( )figure, plot ( )…………………使用数据类型转换函数可以转换图像数据类型,如im2uint8 ( ) ------------------ convert image to uint8im2uint16 ( ) ---------------- convert image to uint16mat2gray ( ) ----------------- convert image to double, range[0 , 1]im2double ( ) ---------------- convert image to doubleim2bw ( ) --------------------- convert image to logical四、实验过程使用函数imread 打开一幅灰度图像(lena_gray.jpg),使用函数imwrite 将图像另存为不同的文件名;在此过程中观察图像矩阵的形式,并记录5×5的矩阵片断;使用函数size察看图像大小,使用函数imfinfo察看图像信息;记录图像信息;分别使用函数imshow 和函数imview 显示图像;记录两种方式的区别。
使用函数imread打开一幅彩色图像(lena_color.tif),观察图像矩阵的形式;并分别记录RGB三色5×5的矩阵片断;使用函数rgb2gray将彩色图像转换为灰度图像;使用im2uint8和im2double转换图像的数据类型,记录5×5矩阵片断在转换前后的变化。
六、源程序I=imread('Lena_color.tif');J=imread('lena_gray.jpg');J1=rgb2gray(I)imshow(I);figure,imshow(J);figure,imshow(J1)figure,imshow(I),colorbar;figure,imshow(J),colorbar;imwrite(I,'Lenna.tiff');实验二图像运算一、实验目的1.熟悉MATLAB基本图像操作;2.结合实例学习如何在程序中增加图像处理算法;3.理解和掌握图像的运算和直方图均衡化的原理和应用;4.了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;5.了解噪声模型及对图像添加噪声的基本方法。
二、实验要求在MATLAB环境下完成下列操作:1.读入图像;2.图像灰度变换方法;3.灰度的对数扩展法;4.绘制灰度直方图;5.直方图均衡法;6.任意灰度变换实现;三、实验方法灰度直方图反映图像的灰度分布情况,即亮度分布情况;它说明不同灰度的像素个数或分布概率。
使用函数imhist绘制灰度直方图,imhist的语法为h = imhist( f );figure, imhist( f );figure, plot( h );figure, stem( h );figure, bar( h );由于拍摄和处理的原因,导致图像的灰度分布范围过小;最大熵原理指出:数据满足均匀分布时,信息量最大;依据这个原理,通过灰度直方图均衡化将图像灰度分布扩展到整个灰度分布范围,可以使图形信息量最大,即使使得图像对比度增强。
使用函数histeq对图像进行直方图均衡,histeq 的语法为g = histeq( f, nlev ); % nlev 为输出的灰度级数,通常取256,默认64figure, imhist(g);任意灰度变换需要进行分段计算四、实验过程1)使用函数imread打开一幅灰度图像(2_1.jpg),使用函数imhist绘制灰度直方图。
直方图有四种表现形式h = imhist( f );figure, imhist( f );figure, plot( h );figure, stem( h );figure, bar( h );观察四种直方图的差别。
2)使用函数imread 打开一幅灰度图像(2_2.jpg),说明这幅图像直方图存在的问题。
使用函数histeq对图像进行直方图均衡,比较并记录均衡前后图像的变化h=histeq(f, 256);figure, imshow(f);figure, imhist(f);figure, imshow(h);figure, imhist(h);3)图像加法是把图像叠加在一起的操作,使用函数imadd将两幅图像相加。
clc;clearf1=imread('rice.png'); %读入图像f2=imread('cameraman.tif '); %读入图像f3=imadd(f1,f2);figure,imshow(f3);4)图像减法是从一幅图像中减去另一幅图像,经常被用作检测两幅图像的差别,使用函数imsubtract将两幅图像相减。
下面的操作是根据一幅原始图像,生成其背景亮度图像,然后再从原图像中减去背景亮度图像,从而得到结果。
I=imread('cameraman.tif');J=uint8(filter2(fspecial('gaussian'),I));K=imsubtract(I,J);subplot(121);imshow(I);subplot(122);imshow(J);figure;imshow(K,[])5)图像间的逻辑运算主要有“与”、“或”、“非”等,把它们组合起来可以构成其他逻辑运算。
当我们对灰度级进行逻辑操作时,像素值作为一个二进制数来处理,逻辑操作按位进行。
“与”和“或”运算通常用作模板,即通过这些操作可以从一幅图像中提取子图像,更加突出子图像的内容。
下面的“与”和“或”运算通过逐点进行。
A=zeros(128);A(40:67,60:100)=1;B=zeros(128);B(50:80,40:70)=1;C=and(A,B);D=or(A,B);E=not(B);F=xor(A,B);subplot(231);imshow(A);title('A图')subplot(232);imshow(B);title('B图')subplot(233);imshow(C);title('A和B相与图')subplot(234);imshow(D);title('A和B相或图')subplot(235);imshow(E);title('B取反图')subplot(236);imshow(F);title('A和B异或图')实验三 图像增强——空域滤波一、实验目的进一步了解MatLab 软件/语言,学会使用MatLab 对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
二、实验要求应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
三、实验内容与步骤a) 调入并显示原始图像b) 利用imnoise 命令在图像原始图像上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器111191111---⎡⎤⎢⎥--⎢⎥⎢⎥---⎣⎦d )采用3x3的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f )利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper) g )重复c)~ e )的步骤h )输出全部结果并进行讨论。
四、 思考题/问答题(1) 简述高斯噪声和椒盐噪声的特点。
(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?五、 实验报告要求描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像。
六、源程序I=imread('electric.tif');J = imnoise(I,'gauss',0.02); %添加高斯噪声 %J = imnoise(I,'salt & pepper',0.02); %添加椒盐噪声ave1=fspecial('average',3); %产生3×3的均值模版ave2=fspecial('average',5); %产生5×5的均值模版K = filter2(ave1,J)/255; %均值滤波3×3L = filter2(ave2,J)/255; %均值滤波5×5M = medfilt2(J,[3 3]); %中值滤波3×3模板N = medfilt2(J,[4 4]); %中值滤波4×4模板imshow(I);figure,imshow(J);figure,imshow(K);figure,imshow(L);figure,imshow(M);figure,imshow(N);实验四 图像的傅立叶变换一、实验目的1、了解图像变换的意义和手段;2、熟悉傅里叶变换的基本性质;3、热练掌握FFT 方法及应用;4、通过实验了解二维频谱的分布特点;5、通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换及滤波锐化和复原处理;6 、了解理想、巴特沃兹、高斯等不同滤波器的结构及滤波效果。