首页 数字图像处理matlab课件四rar第17讲图像运算一

数字图像处理matlab课件四rar第17讲图像运算一

举报
开通vip

数字图像处理matlab课件四rar第17讲图像运算一第第九九讲讲图图像像运运算算((一一))【目录】一、图像运算的基本形式..........................................11、点运算................................................22、领域运算..............................................23、并行运算..............................................34、串行运算...................

数字图像处理matlab课件四rar第17讲图像运算一
第第九九讲讲图图像像运运算算((一一))【目录】一、图像运算的基本形式..........................................11、点运算................................................22、领域运算..............................................23、并行运算..............................................34、串行运算..............................................35、迭代运算..............................................36、窗口运算..............................................37、模板运算..............................................48.帧运算................................................4二、图像的点运算..................................................41、概述..................................................42、线性点运算............................................53、非线性点运算..........................................7三、图像的代数运算...............................................71、概述..................................................72、图像的加法............................................93、图像的减法...........................................104、图像的乘法...........................................115、图像的除法...........................................126、图像四则运算.........................................12四、图像的几何运算..............................................131、概述.................................................132、象素坐标系统.........................................143、空间坐标系统.........................................154、灰度级插值...........................................165、简单的空间变换.......................................18五、仿射变换.......................................................21【正文】一、图像运算的本形式09-1顺向扫描逆向扫描1、点运算在对图像各象素进行处理时,只输入该象素本身灰度的运算称为点运算。2、领域运算在对图像各象素进行处理时,不仅输入该象素本身的灰度,还要输入以该象素为中心的某些局部区域中的一些象素的灰度进行运算的方式叫领域运算。09-23、并行运算并行运算指的是对图像上各象素同时进行相同处理的运算方式。点运算由于各象素的处理与其他象素无关,因为不论采用顺向扫描还是逆向扫描,结果是一样的,所以点运算可以采用并行运算。对于领域运算,上图可以采用并行运算。下图处理用到前处理的结果,所以不能采用并行处理方式。4、串行运算指按照顺序对逐个象素进行处理的方式。上图即是。5、迭代运算反复多次进行相同处理的运算,称为迭代运算。6、窗口运算09-3为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。7、模板运算对特定形状的区域进行某种运算方式叫模板运算。8.帧运算在两幅或多幅图像之间产生的运算叫帧运算。二、图像的点运算1、概述点运算也称为对比度增强和拉伸、灰度变换,是一种通过对图像中的09-4每个像素值进行计算,从而图像显示效果的操作。点运算常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。在真正进行图像处理之前,有时可以用点运算来克服图像数字化的局限性。典型的点运算应用:●光度学标定:通过对图像传感器的非线性特性作出补偿来反映某些物理特性,例如,光照强度、光密度等;●对比度增强:调整图像的亮度、对比度,以便观察;●显示标定:利用点运算使得图像在显示时能够突出所有用户感的特征;●图像分割:为图像添加轮廓线,通常被用来辅助后续运算中的边界检测;●图像裁剪:将输出图像的灰度级限制在可用范围内。点运算是像素的逐点运算,它将输入图像为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算改变图像内像素点之间的空间。设输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为B(x,y)=f[A(x,y)]点运算完全由灰度数f决定。根据f的不同可以将图像的点运算分为线性点运算和非线性点运算两种。2、线性点运算线性点运算是指灰度变换函数f为线性函数时的运算。用DA表示输入点的灰度值,DB表示相应输出点的灰度值,则函数f的形式如下:f()DA=aDA+b=DB见下图所示:09-5当a>1时,输出图像的对比度会增大;当a 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 使运算结果符合数据范围的 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 :超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四入。例如,如果数据类型是uint8,那于255的结果(无穷大inf)将被设置为255。09-8无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。2、图像的加法MATLAB中调用imadd函数实现图像相加,格式如下:Z=imadd(X,Y);其中Z=X+Y。【例】使用加法操作将两幅图像叠加在一起I=imread('rice.png');J=imread('cameraman.tif');K=imadd(I,J);subplot(2,2,1);imshow(I);subplot(2,2,2);imshow(J);subplot(2,2,3);imshow(K);【例】增加RGB图像的亮度RGB=imread('onion.png');RGB2=imadd(RGB,50);subplot(1,2,1),imshow(RGB);09-9subplot(1,2,2),imshow(RGB2);为了避免出现饱和现象,在进行加法计算前最好将图像转换为一种数据范围较宽的数据类型。3、图像的减法图像减法也称为差分,MATLAB中调用imsubtract函数实现图像相减。调用格式如下:Z=imsubtract(X,Y);其中Z=X-Y。【例】减去不均匀背景rice=imread('rice.png');background=imopen(rice,strel('disk',15));rice2=imsubtract(rice,background);subplot(1,2,1),imshow(rice);subplot(1,2,2),imshow(rice2);【例】降低RGB图像的亮度RGB=imread('onion.png');RGB2=imsubtract(RGB,50);09-10subplot(1,2,1),imshow(RGB);subplot(1,2,2),imshow(RGB2);4、图像的乘法两幅图像进行乘法运算可以实现掩模操作,即掉图像的某些部分。一幅图像乘以一个常数通常被称为缩放。如果使用的缩放因数大于1,那增强图像的亮度,如果因数小于1则会使图像变暗。MATLAB中调用immultiply函数实现两幅图像相乘。调用格式如下:Z=immultiply(X,Y);其中Z=X×Y。【例】象素值缩放I=imread('moon.tif');J=immultiply(I,1.2);K=immultiply(I,0.6);subplot(1,3,1),imshow(I);subplot(1,3,2),imshow(J);subplot(1,3,3),imshow(K);09-115、图像的除法除法运算可用于校正成像的非线性影响。MATLAB中调用imdivide函数进行两幅图像相除。调用格式如下:Z=imdivide(X,Y),其中Z=X÷Y。【例】米粒图像除法运算rice=imread('rice.png');I=double(rice);J=0.43*I;Ip=imdivide(I,J);subplot(2,2,1),imshow(uint8(I));subplot(2,2,3),imshow(uint8(J));subplot(2,2,4),imshow(uint8(Ip),[]);6、图像四则运算因对uint8、uintl6数据,每步运算都要进行数据截取,将会减少输出图像的量。图像四则运算较办法是使用函数imlincomb。该函数按双精度执行所有代数运算操作,仅对最后的输出结果进行截取,该函数的调用格式如下:09-12Z=imlincomb(A,X,B,Y,C),其中,Z=A×X+B×Y+CZ=imlincomb(A,X,C),其中:Z=A×X+CZ=imlincomb(A,X,B,Y),其中:Z=A×X+B×Y【例】计算两幅图像的平均值CLFI1=imread('rice.png');I2=imread('cameraman.tif');%K=imdivide(imadd(I1,I2),2);K=imlincomb(0.5,I1,0.5,I2);subplot(2,2,1),subimage(I1);subplot(2,2,2),subimage(I2);subplot(2,2,3),subimage(K);四、图像的几何运算1、概述几何运算与点运算不同,可以看成是像素在图像内的移动过程,该移09-13动过以改变图像中物体对象(像素)之间的空间。几何运算可以是不受任何限制的,但是通常都需要做出一些限制以保持图像的外观顺序。完整的几何运算需要由两个算法来实现:空间变换算法和灰度值算法。空间变换主要用来保持图像中曲线的连续性和物体的连通性,都采用数学函数形式来描述输入、输出图像相应像素间的空间。空间变换的定义为gxy()()()(),=fxy','=faxybxy,,,其中,f表示输入图像,g表示输出图像,坐标(x',y')指的是空间变换后的坐标,要注意这时的坐标已经不是原来的坐标(x,y)了。a(x,y)和b(x,y)分别是图像的x和y坐标的空间变换函数。灰度级值主要是对空间变换后的像素赋予灰度值,使之恢复原位置处的灰度值。在几何运算中,灰度级值是必不可少的组成部分,因为图像用整数位置处的像素来定义。而在几何变换中,g(x,y)的灰度值一般由处在非整数坐标上的f(x,y)的值来确定,即g中的一个像素对应于f中的几个像间的位置,反过来看也是一样,即f中的一个像素往往被到g中的几个像间的位置。显然,要了解空间变换,首先就要对图像的坐标系统有一个清楚的了解。MATLAB图像处理工主要采用两种坐标系统:像素坐标系统和空间坐标系统。2、象素坐标系统像素坐标系统下,图像被视为右图所示的离散元素网格,网格按照从上到下、从左到右的顺序排列。对于像素坐标来说,第一个分量r(行)向下增长,第二个分量c(列)向右增长。像素坐标是整型数值,数据范围在1到行或列长度之间。像素坐标与MATLAB矩阵下标09-14一一对应,这种对应有助于理解图像数据矩阵与图像显示之间的关系。例如,图像第五行、第二列的像素值将保矩阵元素(5,2)中。在像素坐标中,一个像素被理解为一个离散单元,由一个单独的坐标对唯一确定,根据这种定义,诸如(5.3,3.2)这样的位置是没有意义的。3、空间坐标系统如果将像素视为一个正方形,此时坐标(5.3,3.2)是有意义的,并且该位置与坐标(5,2)有区别。右图说明了这种空间坐标系统的定义。任何像素中心点的空间坐标都与该像素的像素坐标一致。在像素坐标中,图像的左上角位置是(1,1),且始终为(1,1)。在空间坐标中,该位置缺省情为(0.5,0.5),但是在空间坐标系统中可以使用一个任意的起始点。例如,用户可以将图像的左上角指定为点(19.0,7.5),而不是(0.5,0.5)。为了建立一个非缺省的空间坐标系统,可以在显示图像时指定图像的XDATA和YDATA属性,这两个属性都是由两个数值组成的向量,这两个数值分别表示第一个和最后一个像素的中心点坐标。【例】使用非缺省的XDATA和YDATA显示图像CLFA=magic(5);x=[19.523.5];y=[8.012.0];image(A,'xdata',x,'ydata',y);axisimage;colormap(jet(25));09-157.588.599.51010.51111.51212.51919.52020.52121.52222.52323.524缺省情,图像A的XDATA属性为[1,size(A,2)],而YDATA属性为[1,size(A,1)]。显然,真实的坐标延伸范围略大于这两个数值间的距离。像素坐标与空间坐标另一个容的地方在于,两个坐标系统的水平分量符号和垂直分量符号是一种逆转,像素坐标从左到右表示图像列的方向,而空间坐标从左到右则相当于图像行的方向。以后,以r和c作为下标的函数采用的是像素坐标系统,而以x和y作为下标的函数采用的是空间坐标系统。4、灰度级值实现几何运算有两种:其一为前向法,即将输入像素的灰度一个个地转移到输出图像中,如果一个输入像素被到四个输出像间的位置,则其灰度值就按值法在四个输出像间进行分配;其二为后向法(像素填充法),这时将输出像素逐个地回输入图像中,若输出像素被到四个输入像间的位置,则其灰度由它们的值来确定。在实际中,通常采用后向法。09-16灰度级值是用来估计像素在图像像素间某一位置处取值的过程。例如,如果用户修改了一幅图像的大小,使其包含比原始像素的像素,那须使用值计算其额外像素的灰度取值。灰度级值的有很多种,但是值操作的方式都是相同的。无论使用何种值,首先都需要找到与输出图像像素相对应的输入图像点,然后再通过计算该点附近某一像素集合的权平均值来指定输出像素的灰度值。像素的权是根据像素到点的距离而定的,不同值的区别就在于所考虑的像素集合不同。最近邻值nearest-输出像素将被指定为像素点所在位置处的像素值;双线性值bilinear-输出像素值是像素2×2邻域内的权平均值;双三次值bicubic-输出像素值是像素4×4邻域内的权平均值。最近邻值不够精确。双线性值利用(x,y)点的四个最近邻像素的灰度值,按照以下计算(x,y)点的灰度值。设输出图像的宽度为W,高度为H,输入图像的宽度为w,高度为h,按照线形值的,将输入图像的宽度方向分为W等份,高度方向分为H等份,那么输出图像中任意一点(x,y)的灰度值就应该由输入图像中四点(a,b)、09-17(a+1,b)、(a,b+1)和(a+1,b+1)的灰度值来确定。a和b的值分别为:wxa=0WxWhyb=0HyH(x,y)点的灰度值f(x,y)应为:fxy()()()()(),=b+2−yfxb,+a+1−xfxb,+1;其中()()()(),−+++−=bafxabafaxbxf),(1,1()()()()1,bafxabafaxbxf+−++++−=+)1,(111,5、简单的空间变换(1)图像缩放MATLAB使用imresize函数来改变一幅图像的大小,调用格式如下:B=imresize(A,M,METHOD),其中:A-原图像;M-缩放系数;B-缩放后的图像;METHOD-值,可取值'nearest','bilinear'和'bicubic'。【例】原图像放大1.25倍[I,map]=imread('kids.tif');J=imresize(I,1.25);subplot(1,2,1),subimage(I,map)subplot(1,2,2),subimage(J,map)09-18505010010015015020020025030025035030040035045040050050100150200250300100200300调用imresize函数时可以指定输出图像的真实大小。例如,以下命令将创建一幅100×150的输出图像:Y=imresize(X,[100150])注意,如果指定的大小不能够产生与输入图像同样的外观比例,那么输出的图像将会产生失真。(2)图像旋转使用imrotate函数来旋转一幅图像。调用格式如下:B=imrotate(A,ANGLE,METHOD,BBOX),其中:A-需要旋转的图像;ANGLE-表示旋转的角度,正值为逆时针;METHOD-值;BBOX-取值loose(缺省)、crop【例】图像旋转CLF[I,map]=imread('kids.tif');J=imrotate(I,35,'bilinear');J1=imrotate(I,35,'bilinear','crop');subplot(2,2,1),imshow(I,map)subplot(2,2,3),imshow(J,map)09-19subplot(2,2,4),imshow(J1,map)(3)图像剪切使用imcrop函数可以从一幅图像中抽取一个矩形的部分。imcrop函数的调用格式如下:X2=imcrop(X,MAP,RECT)其中,X表示有待剪切的图像,不指定X时,imcrop将当前坐标轴中的图像作为待剪切的图像。MAP表示X为索引图像时的调板,RECT定义剪切区的矩形坐标。如果调用imcrop时不指定矩形的坐标,那光标位于图像中时会变成十字形,可以通过拖曳鼠标的方式交互式地选择一个矩形。imcrop函数根据用户的选择绘制一个矩形,标键后将产生一个新的图像。例如,首先显示一幅如下左图所示的图像,然后调用imcrop。imcrop函数会等待用户选择图像中的剪切区域,然后函数imshow将显示剪切得到的图像。imshow('kids.tif');I=imcrop;figure,imshow(I);09-20【例】五、仿射变换仿射变换,可以用以下函数来描述:f(x)=Ax+b,其中,A是变形矩阵,b是平移矩阵。(1)尺度变换S0变换矩阵:AS=,S≥00S【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')s=1.5;T=[s0;0s;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('尺度变换')原图尺度变换1020204030406050806010070801202040608020406080100120(2)伸缩变换10变换矩阵:At=0t【例】09-21CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')t=2;T=[10;0t;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('伸缩变换')伸缩变换20原图40102060304080506010070801202040608014020406080(3)扭曲变换1u变换矩阵:Au=01【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')u=0.5;T=[1u;01;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('扭曲变换')09-22扭曲变换原图2010204030406050608070801002040608012020406080(4)旋转变换cos−sin变换矩阵:Ar=sincos【例】CLF;I=checkerboard(20,2);subplot(1,2,1);imshow(I);title('原图')angle=20*pi/180;sc=cos(angle);ss=sin(angle);T=[sc-ss;sssc;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);title('旋转变换')09-23原图旋转变换(5)综合变换ScosSTUcos−STsin变换矩阵:A=,B=Dx,DySsinSTUsin+STcos【例】CLF;I=checkerboard(20,2);subplot(1,2,1);imshow(I);title('原图')s=2;As=[s0;0s];%尺度t=2;At=[10;0t];%伸缩u=1.5;Au=[1u;01];%扭曲st=30*pi/180;sc=cos(angle);ss=sin(angle);Ast=[sc-ss;sssc];%旋转T=[As*At*Au*Ast;35];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);title('综合')09-24综合原图(6)点变换【例】I=imread('cameraman.tif');udata=[01];vdata=[01];tform=maketform('projective',...[00;10;11;01],[-42;-8-3;-3-5;62]);[B,xdata,ydata]=imtransform(I,tform,...'bicubic','udata',udata,'vdata',vdata,'size',size(I),'fill',128);subplot(1,2,1);imshow(udata,vdata,I),axisonsubplot(1,2,2);imshow(xdata,ydata,B),axison00.2-40.4-20.6020.8-505100.20.40.60.8109-25
本文档为【数字图像处理matlab课件四rar第17讲图像运算一】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
洞若观火
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:25
分类:
上传时间:2022-02-01
浏览量:0