图像处理实验书精要.docx

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像处理实验书精要

16实验二MATLAB数字图像基本操作2.1实验目的掌握MATLAB中数字图像的存储,读取和显示掌握MATLAB中的基本数据,图像类型,以及类型之间的互相转换掌握数字图像数据的索引和赋值方法熟悉并掌握基本的M函数编程知识2.2实验原理2.2.1MATLAB中数字图像的存储读取和显示MATLAB常用二维矩阵来表示图像读取图像通过函数imread来执行,语法为:f=imread(‘filname’);其中,filename参数表示输入的文件名,包括路径和文件名,路径可以是绝对路径,也可以是相对路径,函数返回值f是一个图像数组。MATLAB支持的图像类型有TIFF,JPEG,GIF,BMP,PNG和XWD等。保存图像使用函数imwrite来执行,语法可以有一下几种:imwrite(f,’filename’); %默认方式,文件格式由后缀名来指定imwrite(f,’filename’,’tif’); %由第3个参数指定保存文件的格式imwrite(f,’filename.jpg’jpg’,’quality’,q); %保存JPEG文件,指定JPEG的压缩质量显示图像使用imshow来执行,基本语法为:imshow(f,G);其中,f是图像数组,G是该图像显示的灰度级数,默认灰度级数为256。另两种语法为:imshow(f,[low,high]); %所有大于high的显示为白色,小于low的显示为黑色imshow(f,[ ]); %low设置为最小值,high设置为最大值,其余值按比例拉伸其他相关函数:[m,n]=size(f); %函数size用来查询图像的行数和列数whos f; %函数whos可以显示数组的附加信息函数pixval经常用来交互式地显示单个像素地亮度值。该函数可以显示覆盖在图像上的光标。当光标随着鼠标在图像上移动时,光标所在位置的坐标和该点的亮度值会在该图形窗口的下方显示出来。处理彩色图像时,RGB分量的坐标也会显示出来。若按下鼠标左键不放,则pixval将显示光标初始位置和当前位置点的欧式距离。通常pixval函数和imshow函数联合使用。通常imshow函数只能显示一幅图像,若要同时显示两幅图像,则使用语句figure,imshow。函数imfinfo用来显示图像的相关信息,语法为:imfinfo filename; %显示图像的相关信息2.2.2 MATLAB中的数据类型和相互转换MATLAB中常用的数据类型有:double,uint8,uint16,uint32,int8,int16,int32,single,char,logical等。其中前几个跟C语言相应类型类似,而logical类型是值为0或1的单比特像素。MATLAB中支持的图像类型有亮度图像、二值图像、索引图像和RGB图像。其中亮度图像和RGB图像的值可以是整数类型的,也可以是浮点数类型的;二值图像的值是logical类型的;索引图像的值是整数类型的。数据类型间可以相互转换,通用语法为:B=data_class_name(A); %将数组A转换到data_class_name类型常用的图像类型转g=im2uint8(f); %图像转换到uint8类型g=im2uint16(f); %图像转换到uint16类型g=im2gray(f,[fmin,fmax]); %图像转换到double类型,值在[0,1]区间g=im2double(f); %图像转换到double类型g=im2bw(f,T); %以T作为阈值,将图像转换到logical类型2.2.3 数组、矩阵索引和赋值方法MATLAB中数组和矩阵的索引和存取方法相当灵活,有多种方法。维数为1×N的数组称为行向量,默认的MATLAB向量是行向量,使用转置运算符“.’”可以转换为列向量。A=B.’;设V是一个向量。向量元素访问采用一维索引方式进行,如V(1)是第一个元素。使用冒号可以访问几个相连的元素,如前3个元素V(1:3),后3个元素V(end-2:end)。V(:)是一个列向量,而V(1:end)是一个行向量。V(1:2:end)生产一个步长为2的行向量。x=linspace(a,b,n)产生一个n个元素的行向量x,包含a、b,均匀分布。V([1 4 5])用向量的值作为索引值,访问向量中的1、4、5等3个元素。矩阵赋值直接用一列放在方括号中并用分号分开的行向量表示,如: A=[1 3 5; 4 5 6; 7 8 9];二维矩阵取指定位置元素,需要两个索引,分别指向行位置和列位置,如:A(2,3)。也可以用冒号来选择一个二维块,如取指定列:A(:,3),等同于A(1:3,3);取指定行:A(3,:),等同于A(3,1:3)。也可以用冒号运算符取其中的某

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档