




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十四讲 图像运算(一)【目录】一、图像运算的基本形式11、点运算22、领域运算23、并行运算34、串行运算35、迭代运算36、窗口运算37、模板运算48帧运算4二、图像的点运算41、概述42、线性点运算53、非线性点运算6三、图像的代数运算71、概述72、图像的加法83、图像的减法94、图像的乘法105、图像的除法116、图像四则运算11四、图像的几何运算121、概述122、象素坐标系统133、空间坐标系统144、灰度级插值155、简单的空间变换16五、仿射变换18【正文】一、图像运算的基本形式顺向扫描 逆向扫描1、点运算在对图像各象素进行处理时,只输入该象素本身灰度的运算称为点运算。2、领域运算在对图像各象素进行处理时,不仅输入该象素本身的灰度,还要输入以该象素为中心的某些局部区域中的一些象素的灰度进行运算的方式叫领域运算。3、并行运算并行运算指的是对图像上各象素同时进行相同处理的运算方式。点运算由于各象素的处理与其他象素无关,因为不论采用顺向扫描还是逆向扫描,结果是一样的,所以点运算可以采用并行运算。对于领域运算,上图可以采用并行运算。下图处理用到前处理的结果,所以不能采用并行处理方式。4、串行运算指按照顺序对逐个象素进行处理的方式。上图即是。5、迭代运算反复多次进行相同处理的运算,称为迭代运算。6、窗口运算为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。7、模板运算对特定形状的区域进行某种运算方式叫模板运算。8帧运算在两幅或多幅图像之间产生的运算叫帧运算。二、图像的点运算1、概述点运算也称为对比度增强和拉伸、灰度变换,是一种通过对图像中的每个像素值进行计算,从而改善图像显示效果的操作。点运算常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。典型的点运算应用包括:光度学标定:通过对图像传感器的非线性特性作出补偿来反映某些物理特性,例如,光照强度、光密度等;对比度增强:调整图像的亮度、对比度,以便观察;显示标定:利用点运算使得图像在显示时能够突出所有用户感兴趣的特征;图像分割:为图像添加轮廓线,通常被用来辅助后续运算中的边界检测;图像裁剪:将输出图像的灰度级限制在可用范围内。点运算是像素的逐点运算,它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算不会改变图像内像素点之间的空间关系。设输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为B(x,y)=fA(x,y)点运算完全由灰度映射函数f决定。根据f的不同可以将图像的点运算分为线性点运算和非线性点运算两种。2、线性点运算线性点运算是指灰度变换函数为线性函数时的运算。用表示输入点的灰度值,表示相应输出点的灰度值,则函数的形式如下:见下图所示:当a1时,输出图像的对比度会增大;当al时,输出图像的对比度会减小;当a=1,b=0时,输出图像就是输入图像的简单复制;当a=1,b0时,输出图像在整体效果上比输入图像要明亮或灰暗。当a=-1,b=0时,产生负象【例】线性点运算rice=imread(rice.png);I=double(rice);J=I*0.43+60;rice2=uint8(J);subplot(1,2,1),imshow(rice);subplot(1,2,2),imshow(rice2); 【例】负象rice=imread(rice.png);I=double(rice);J=-1*I;subplot(1,2,1),imshow(I,);subplot(1,2,2),imshow(J,); 3、非线性点运算非线性点运算对应与非线性的灰度变换函数。下图是几种典型的非线性点运算。阈值处理和直方图均匀化,是两种典型的非线性运算,以后介绍。三、图像的代数运算1、概述图像的代数运算是两幅输入图像之间进行点对点的加、减、乘、除运算后得到输出图像的过程。设输入图像为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)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生成的两幅或多幅图像的误差。我们可以使用MATLAB基本算术符(、等)来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。图像处理工具箱包含了一个能实现所有数值数据的算术操作的函数集合。列举如下:函 数 名功 能 描 述Imabsdiif两幅图像的绝对差值Imadd两个图像的加法imcomplment补足一幅图像imdivide两个图像的除法imlincomb计算两幅图像的线形组合lmmultiply两个图像的乘法Imsubtract两个图像的减法使用图像工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uintl6数据,并返回相同格式的图像结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。2、图像的加法MATLAB中调用imadd函数实现图像相加,格式如下:Z=imadd(X,Y);其中Z=XY。【例】使用加法操作将两幅图像叠加在一起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);subplot(1,2,2),imshow(RGB2); 为了避免出现饱和现象,在进行加法计算前最好将图像转换为一种数据范围较宽的数据类型。3、图像的减法图像减法也称为差分方法,MATLAB中调用imsubtract函数实现图像相减。调用格式如下:Z=imsubtract(X,Y);其中Z=XY。【例】减去不均匀背景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);subplot(1,2,1),imshow(RGB);subplot(1,2,2),imshow(RGB2); 4、图像的乘法两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。一幅图像乘以一个常数通常被称为缩放。如果使用的缩放因数大于1,那么将增强图像的亮度,如果因数小于1则会使图像变暗。MATLAB中调用immultiply函数实现两幅图像相乘。调用格式如下:Zimmultiply(X,Y);其中Z=XY。【例】象素值缩放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); 5、图像的除法除法运算可用于校正成像设备的非线性影响。MATLAB中调用imdivide函数进行两幅图像相除。调用格式如下:Z=imdivide(X,Y),其中Z=XY。【例】米粒图像除法运算rice=imread(rice.png);I=double(rice);J=0.43*I+90;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。该函数按双精度执行所有代数运算操作,仅对最后的输出结果进行截取,该函数的调用格式如下:Z=imlincomb(A,X,B,Y,C),其中,Z=AXBYCZ=imlincomb(A,X,C),其中:ZAXCZ=imlincomb(A,X,B,Y),其中:Z=AXBY【例】计算两幅图像的平均值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、概述几何运算与点运算不同,可以看成是像素在图像内的移动过程,该移动过程可以改变图像中物体对象(像素)之间的空间关系。几何运算可以是不受任何限制的,但是通常都需要做出一些限制以保持图像的外观顺序。完整的几何运算需要由两个算法来实现:空间变换算法和灰度插值算法。空间变换主要用来保持图像中曲线的连续性和物体的连通性,一般都采用数学函数形式来描述输入、输出图像相应像素间的空间关系。空间变换的一般定义为其中,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矩阵下标一一对应,这种对应关系有助于理解图像数据矩阵与图像显示之间的关系。例如,图像第五行、第二列的像素值将保存在矩阵元素(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.5 23.5;y=8.0 12.0;image(A,xdata,x,ydata,y);axis image;colormap(jet(25); 缺省情况下,图像A的XDATA属性为1,size(A,2),而YDATA属性为1,size(A,1)。显然,真实的坐标延伸范围略大于这两个数值间的距离。像素坐标与空间坐标另一个容易混淆的地方在于,两个坐标系统的水平分量符号和垂直分量符号是一种逆转关系,像素坐标从左到右表示图像列的方向,而空间坐标从左到右则相当于图像行的方向。以后,以r和c作为下标的函数采用的是像素坐标系统,而以x和y作为下标的函数采用的是空间坐标系统。4、灰度级插值实现几何运算有两种方法:其一为前向映射法,即将输入像素的灰度一个个地转移到输出图像中,如果一个输入像素被映射到四个输出像素之间的位置,则其灰度值就按插值法在四个输出像素之间进行分配;其二为后向映射法(像素填充法),这时将输出像素逐个地映射回输入图像中,若输出像素被映射到四个输入像素之间的位置,则其灰度由它们的插值来确定。在实际中,通常采用后向映射法。灰度级插值是用来估计像素在图像像素间某一位置处取值的过程。例如,如果用户修改了一幅图像的大小,使其包含比原始像素更多的像素,那么必须使用插值方法计算其额外像素的灰度取值。灰度级插值的方法有很多种,但是插值操作的方式都是相同的。无论使用何种插值方法,首先都需要找到与输出图像像素相对应的输入图像点,然后再通过计算该点附近某一像素集合的权平均值来指定输出像素的灰度值。像素的权是根据像素到点的距离而定的,不同插值方法的区别就在于所考虑的像素集合不同。最近邻插值nearest输出像素将被指定为像素点所在位置处的像素值;双线性插值bilinear输出像素值是像素22邻域内的权平均值;双三次插值bicubic输出像素值是像素44邻域内的权平均值。最近邻插值不够精确。双线性插值利用(x,y)点的四个最近邻像素的灰度值,按照以下方法计算(x,y)点的灰度值。设输出图像的宽度为W,高度为H,输入图像的宽度为w,高度为h,按照线形插值的方法,将输入图像的宽度方向分为W等份,高度方向分为H等份,那么输出图像中任意一点(x,y)的灰度值就应该由输入图像中四点(a,b)、(a+1,b)、(a,b+1)和(a+1,b+1)的灰度值来确定。a和b的值分别为:(x,y)点的灰度值f(x,y)应为:;其中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) 调用imresize函数时可以指定输出图像的真实大小。例如,以下命令将创建一幅100150的输出图像:Y=imresize(X,100 150)注意,如果指定的大小不能够产生与输入图像同样的外观比例,那么输出的图像将会产生失真。(2) 图像旋转使用imrotate函数来旋转一幅图像。调用格式如下:B=imrotate(A,ANGLE,METHOD,BBOX),其中:A需要旋转的图像;ANGLE表示旋转的角度,正值为逆时针;METHOD插值方法;BBOX 取值loose(缺省)、crop【例】图像旋转CLFI,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)subplot(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);【例】五、仿射变换仿射变换,可以用以下函数来描述:,其中,A是变形矩阵,b是平移矩阵。(1) 尺度变换变换矩阵:,S0【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axis on;title(原图)s=1.5;T=s 0;0 s;0 0;tf=maketform(affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(尺度变换) (2) 伸缩变换变换矩阵:【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axis on;title(原图)t=2;T=1 0;0 t;0 0;tf=maketform(affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(伸缩变换) (3) 扭曲变换变换矩阵:【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axis on;title(原图)u=0.5;T=1 u;0 1;0 0;tf=maketform(affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(扭曲变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期末汇报幼儿园发言稿
- 创意画钟表课件
- 小班水彩创作课件
- 时间与生命的课件
- 时光老人与流浪汉课件
- 二零二五年度跨境代付款服务三方合作协议书
- 2025版房地产经纪保密合作协议
- 二零二五年度影视制作公司投资与合作协议0001
- 二零二五年离婚协议有声书版权授权与内容更新合同
- 2025版离婚协议书英文翻译与本土化适应研究
- 光伏发电站运行规程
- 医院系统瘫痪应急预案
- 光伏项目技术标准清单
- 117湖南省怀化市雅礼实验学校2023-2024学年七年级下学期开学考试数学试题
- 水电站全套课件
- 输气管线破裂漏气应急处置方案
- 老年患者呼吸系统疾病的护理重点
- 脑卒中急救中的辅助检查与影像学应用
- 野外蚊虫叮咬预防知识讲座
- 人体解剖学试卷及答案
- 成人重症患者镇痛管理(专家共识)
评论
0/150
提交评论