《课程名称》实验指导书适用专业:自动化课程代码: 84018091 学时: 6 学分: 0.5 编写单位:机械工程及自动化学院编写人:蒋代君审核人:审批人:目录实验一 Matlab图像处理工具箱的初步练习 .............................................................................................. - 2 - 实验二图像的空域处理方法 ....................................................................................................................... - 5 - 实验三图像的空域处理方法 ....................................................................................................................... - 8 - 实验四图像分割和目标识别 ..................................................................................................................... - 13 -实验一 Matlab图像处理工具箱的初步练习一、实验目的和任务1、初步了解与掌握MATLAB语言的基本用法;2、掌握MA TLAB语言中图象数据与信息的读取方法;3、掌握在MA TLAB语言中图像类型的转换。
二、实验仪器、设备及材料1、计算机2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)3、实验所需要的图片三、实验原理将数字图像的RGB表示转换为YUV表示;Y=0.30R+0.59G+0.11BU=0.70R-0.59G-0.11BV=-0.30R-0.59G+0.89B四、实验步骤1、阅读资料并熟悉MatLab的基本操作2、读取MATLAB中的图象数据3、显示MATLAB中的图象文件。
用MATLAB在自建的文件夹中建立m文件,在这个文件的程序中,将MA TLAB目录下work文件夹中的tree.tif 图象文件读出,用到imread,imfinfo等命令,观察一下图象数据,了解一下数字图象在MA TLAB中的处理就是处理一个矩阵的本质。
4、将3中的图象显示出来(用imshow)。
5、对MA TLAB目录下work文件夹中的flowers.tif进行真彩色图像、索引色图像、灰度图像、二值图像之间的相互变换,并显示。
6、进行真彩色图像RGB(lenacolor.jpg)、YIQ图像、HSV图像、YcbCr图像的相互转换,并显示。
五、实验报告要求1、描述实验的基本步骤;2、用图片给出步骤4、5、6中取得的实验结果;六、实验所需图片lenacolor.jpg七、实验注意事项1、学生应提前预习2、请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path八、思考题1、图像之间转换的基础是什么,为什么可以实现相互的转换九、附录MATLAB简介 (1)MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MA TLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
而MATLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。
MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。
MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。
1、MATLAB中图象数据的读取A、imreadimread函数用于读入各种图象文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。
例:[X,MAP]=imread(’flowers.tif’,’tif’);B、imwriteimwrite函数用于输出图象,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filename,fmt)按照fmt指定的格式将图象数据矩阵X和调色板map写入文件filename。
C、imfinfoimfinfo函数用于读取图象文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图象的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图象的类型等。
例:imfinfo('rice.tif')2、MATLAB中图象文件的显示imshowimshow函数是最常用的显示各种图象的函数,其语法如下:imshow(X,map)其中X是图象数据矩阵,map是其对应的颜色矩阵,若进行图象处理后不知道图象数据的值域可以用[]代替map。
需要显示多幅图象时,可以使用figure语句,它的功能就是重新打开一个图象显示窗口。
例:I=imread(‘rice.tif’);Imshow(I);J=imread(‘flowers.tif’);figure,imshow(J);3、其它命令有rgb2gray 将RGB图像转换成灰度图像ind2gray 将索引色图像转换成灰度图像rgb2ind 将RGB图像转换成索引色图像ind2rgb 将索引色图像转换成RGB图像im2bw 将图像转换成黑白图像实验二 图像的频域处理方法一、实验目的和任务1、了解离散傅立叶变换的基本原理;2、掌握应用MA TLAB 进行Fourier 变换、反变换的算法实现,并初步理解Fourier 变换的物理意义。
二、实验仪器、设备及材料1、 计算机2、 MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)3、 实验所需要的图片三、实验原理Fourier 变换Fouriern 逆变换四、实验步骤1、 用Fourier 变换算法,对简单图像line.bmp, yuan.bmp, twoyuan.bmp, juxing.bmp,xuanzhuan.bmp, pingyiy.bmp, pingyi.bmp 做Fourier 变换,体会从空域转换到频域的不同表现。
2、 对图像Lenna.bmp 作二维Fourier 变换;(可以采用快速Fourier 变换方法)3、 用Fourier 系数的幅度进行Fourier 反变换;4、 用Fourier 系数的相位进行Fourier 反变换;5、 比较2、3的结果,评价人眼对图像幅频特性和相频特性的敏感度。
五、实验报告要求1、 描述实验的基本步骤;2、 用图片给出步骤1中取得的实验结果并进行必要的讨论;3、 评价人眼对图像幅频特性和相频特性的敏感度(选作)。
11001(,)(,)exp[2()/],,0,1,2,..,1N N x y F u v f x y j ux vy N u v N N π--===-+=-∑∑11001(,)(,)exp[2()/],x,y 0,1,2,..,1N N u v f x y F u v j ux vy N N N π--===+=-∑∑1222(,)[(,)(,F u v R u v I u v =+(,)arctan[(,),(,)].u v I u v R u v φ=相位谱: 能量谱: 22(,)(,)(,)E u v R u v I u v =+振幅谱:六、实验所需图片七、实验注意事项1、学生应提前预习2、由于实验室的管理规定所有的程序不能存在C盘和D盘,因此请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path八、思考题1、频谱对应的特征量代表的含义2、为什么图像对幅频特性和相频特性有不同的敏感度。
九、附录MATLAB简介 (2)1、MA TLAB提供的快速傅立叶变换函数(1)fft2fft2函数用于计算二维快速傅立叶变换,其语法格式为:B = fft2(I)B = fft2(I)返回图象I的二维fft变换矩阵,输入图象I和输出图象B大小相同。
例如,计算图象的二维傅立叶变换,并显示其幅值的结果,如图所示,其命令格式如下load imdemos saturn2imshow(saturn2)B = fftshift(fft2(saturn2));imshow(log(abs(B)),[],'notruesize')(2)fftshiftMATLAB提供的fftshift函数用于将变换后的图象频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:B = fftshift(I)对于矩阵I,B = fftshift(I)将I的一、三象限和二、四象限进行互换。
(3)ifft2ifft2函数用于计算图象的二维傅立叶反变换,其语法格式为:B = ifft2(I)B = ifft2(A)返回图象I的二维傅立叶反变换矩阵,输入图象I和输出图象B大小相同。
其语法格式含义与fft2函数的语法格式相同,可以参考fft2函数的说明。