欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验2 基于像素的图像操作.docx

    • 资源ID:8845339       资源大小:718.45KB        全文页数:12页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验2 基于像素的图像操作.docx

    1、实验2 基于像素的图像操作实验二 基于像素的图像操作一、 实验目的1、理解图像的数据类型及其之间的转换2、掌握对图像的像素点进行操作的基本方法。3、体会图像算术运算处理的过程和处理前后图像的变化。二、 实验原理1、图像的数据类型 在MATLAB中,数值的运算一般都是采用double型(64位)进行的。为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型图像。对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行

    2、表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。对于灰度图像,uint8表示范围0,255,double型表示范围0,1。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255); %double转换成uint 8I64=double (I8)/255; %uint8转换成double使用imread函数读取图像时,imreaad会根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread把图像

    3、作为无符号整数存入一个uint8矩阵中;imread把索引图的调色板数据转换为double型矩阵,矩阵中每个元素值在0,1内;当为RGB图像时,imread把数据存入到一个3维的uint8矩阵中。2、图像像素间的相邻关系 图像中位于坐标(x,y)的一个像素p,即位于x行y列的像素点有4个水平和垂直的相邻像素,其坐标是:(x+1,y), (x-1, y), (x , y+1), (x , y-1)这四个像素集称为p的4邻域。p的4个对角的相邻像素点坐标是:(x+1,y+1), (x+1,y-1), (x-1, y+1), (x-1,y-1)对角的像素点与4个邻域点一起称为p的8邻域。3、图像的代

    4、数运算图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式: C(x,y) = A(x,y) + B(x,y) C(x,y) = A(x,y) - B(x,y) C(x,y) = A(x,y) * B(x,y) C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差

    5、。使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图像代数运算函数。表2-1 图像处理工具箱中的代数运算函数函数名功能描述Imabsdiff两幅图像的绝对差值Imadd两幅图像的加法Imcomplement补足一幅图像Imdivide两幅图像的除法Imlincomb计算两幅图像的线性组合Immultiply两幅图像的乘法imsubtract两幅图像的减法使用图像处理工具

    6、箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。代数运算的结果很容易超出数据类型允许的范围。例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么

    7、大于255的结果(包括无穷大inf)将被设置为255。注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。三、 实验内容及步骤1、对图像进行像素点操作,需要逐行逐列扫描像素点。在程序上表现为双重循环的形式,例1是采用像素点相加的方法将图1与图2两个图像相加,结果见图3。在m程序窗口,输入例1程序,运行并观察结果,理解对图像像素点的操作方法。例 1: I=imread(rice.tif);J=imread(cameraman.tif);m,n=size(I); %取图像的尺寸。m为行数、n为列数for i=1:m for j=1:n K(i,j)=double(I(i,j)+

    8、double(J(i,j)-70; %两图像的像素点进行相加 endendK=uint8(K); %相加的结果转换为uint8型imshow(K)例1程序中关键点是,图像数据类型的转换。imread函数读入灰度图像的数据为无符号整数,而数据要进行代数运算需要转换为双精度型数据。即语句 double(I(i,j)运算结束后再转换回无符号8位型数据,确保不影响接下来的操作。使用语句 uint8(K)2、两个图像的大小不同时,可以通过放大或缩小某一图像,使两个图像大小相同然后再进行运算。放大图像的操作有:创建新的像素点位置和对新位置赋灰度值。新像素点的灰度值可以赋以邻域像素点的灰度值或双线性内插法获

    9、得。图像缩小可以每隔一行(或一列)删除一行(或一列)来实现。例2:使用最近邻域内插法,将256*256像素图(图4 I48_256.bmp )放大到512*512像素图像。close all; clear allx=imread(I48_256.bmp); y=uint8(zeros(512,512); %创建大小为512*512的空图像,灰度值全0,无符号8位数据m,n=size(x); %取图像的尺寸。m为行数、n为列数for i=1:m for j=1:n ii=2*i; jj=2*j; y(ii-1,jj-1)=x(i,j); y(ii-1,jj)=x(i,j); y(ii,jj-1)

    10、=x(i,j); y(ii,jj)=x(i,j); %新位置的灰度值是原图的邻域像素的灰度值 endendimshow(x)title(原图256*256)figure(2)imshow(y)title(放大512*512)例3:将256*256像素图(图4)缩小为128*128像素图像。close all; clear allx=imread(I48_256.bmp); y=uint8(zeros(128,128); m,n=size(y); for i=1:m for j=1:n y(i,j)=x(2*i,2*j); %只取偶数行(列)形成新图像 endendimshow(x)title(

    11、原图256*256)figure(2)imshow(y)title(缩小128*128)思考题1:编写m程序,实现将大小为128*128的图5( I7.bmp)与大小为256*256的图6(I21_256.bmp)相加,得到类似图7的结果。 图5 I7.bmp 图6 I21_256.bmp 图7 两图相加的结果close all; clear allx=imread(I7.bmp); y=uint8(zeros(256,256); m,n=size(x); for i=1:m for j=1:n ii=2*i; jj=2*j; y(ii-1,jj-1)=x(i,j); y(ii-1,jj)=x

    12、(i,j); y(ii,jj-1)=x(i,j); y(ii,jj)=x(i,j); endendimshow(x)title(原图128*128)figure(2)imshow(y)title(放大256*256)I=y;J=imread(I21_256.bmp);m,n=size(I); for i=1:m for j=1:n K(i,j)=double(I(i,j)+double(J(i,j)-70; endendK=uint8(K); imshow(K)思考题2:编写m程序,将 cameraman.tif 加重影使其有轮廓模糊的效果。结果类似图8。(提示:1、形成新的图像,由原图向左或

    13、向右移动几个像素点。2、将原图与新图相加,其灰度值要除以2。J=imread(cameraman.tif);m,n=size(J);%取图像的尺寸。m为行数、n为列数K=Jfor i=1:m for j=1:n-5 K(i,j)=(double(J(i,j)+double(J(i,j+5)/2; end 图8 重影的cameraman.tifendK=uint8(K); %相加的结果转换为uint8型imshow(K)结果如下:四、实验报告及要求1、按照上述实验步骤把实验结果截图(所有的实验图像标上自己的学号姓名)。2、回答思考题,写出实现的命令及实验结果截图,分析结果附上文字说明。3、使用word文档写报告,交电子文档;


    注意事项

    本文(实验2 基于像素的图像操作.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开