附录二 用MATLAB进行图像处理.pdf
上传人:yy****24 上传时间:2024-09-10 格式:PDF 页数:26 大小:1.2MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

附录二 用MATLAB进行图像处理.pdf

附录二用MATLAB进行图像处理.pdf

预览

免费试读已结束,剩余 16 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用MATLAB进行图像处理李东晓MATLAB的矩阵运算可直接用于图像处理MATLAB图像处理工具箱可方便地实现各种复杂的图像处理算法主要可完成如下图像处理功能:图像的几何操作邻域和块处理线性滤波图像变换图像分析和增强图像恢复图像编码二值形态学处理等等2012/9/202一.MATLAB7.0支持的图像文件格式2012/9/203二.读取图像imread('filename')例:>>f=imread('lenna512.bmp');>>f=imread(’D:\myimages\lenna.bmp');>>f=imread(‘.\myimages\lenna.bmp’);将BMP图像lenna读入图像数组f若filename中不包含任何路径信息,则imread会从当前目录中寻找并读取图像文件,若当前目录中没有所需要的文件,则会尝试在MATLAB搜索路径中寻找该文件2012/9/204函数size可给出图像的行数和列数:>>size(f)ans=512512在可用如下格式获得一幅图像的大小:>>[M,N]=size(f);该语句将返回图像f的行数(M)和列数(N)2012/9/205函数whos可以显示出一个数组的附加信息>>whosf返回:NameSizeBytesClassf512x512262144uint8arrayGrandtotalis262144elementsusing262144bytes2012/9/206三.显示图像一般使用函数imshow来显示一幅图像imshow(f,G)f是要显示的图像数组,G是显示所用的灰度级数若将G省略,则默认的灰度级数是256imshow(f,[lowhigh])将所有值小于或等于low的像素都显示为黑色,g(x,y)Mg所有值大于或等于high的像素显示为白色,值在low和high之间的像素值将以默认的灰度级数256显示为中间亮度。如imshow(f,[20,100])0lowhighMff(x,y)2012/9/207imshow(f,[])将图像的最小值作为low,将图像的最大值作为high在显示时自动调整了图像的动态范围在新窗口显示一幅图像>>figure,imshow(g)语句figure用于开一个新的窗口Imshow也可用于从文件直接显示一幅图像imshow('boat.bmp')函数pixval能实现交互地显示单个像素的亮度值(V7.1改用impixelinfo)2012/9/208四.保存图像用函数imwrite可以将图像写到文件夹中imwrite(f,'filename')其中filename中包含的字符串必须带一种可识别的文件格式扩展文件格式也可由第三个输入参量明确指定>>imwrite(f,'cameraman.tif')>>imwrite(f,'cameraman.tif','tif')若filename中不包含路径信息,则imwrite将文件保存到当前的工作目录中2012/9/209保存为JPEG图像imwrite(f,'filename.jpg','quality',q)q是一个在0到100间的整数(q越小则,图像质量越差,压缩越高)如:imwrite(f,'myimage.jpg','quality',50)保存窗口中显示图像用显示窗口菜单上的Save或saveas命令2012/9/2010五.MATLAB的图像数据存贮类型MATLAB用于运算的图像数据类型为双精度浮点数(double,64位)但一般图像存贮采用8位或16位无符号整数,MATLAB分别采用uint8和uint16类型的数组存放8位图和16位图MATLAB还采用logical类型存放二值图像,每个像素1bit,取值0或1MATLAB工具箱中函数大多不支持uint8和uint16类型运算时一般需要转换成double型double类图像的取值范围是[0,1]2012/9/2011(1)数据类型间的转换B=data_class_name(A)例如,B=double(A)若A是一个uint8类数组,则命令会产生一个双精度数组B。例如,D=uint8(C)设C是一个取值范