图像运算--ch3_第1页
图像运算--ch3_第2页
图像运算--ch3_第3页
图像运算--ch3_第4页
图像运算--ch3_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、直接放大法的优点是简单易编程实现,能够看到图像的局部细节,但是这种方法得到的放大图像中,当缩放系数较大时,会产生所谓的“马赛克”现象,即放大后图像的子块与子块之间的过渡不平缓,产生方块效应。从图(d)中也可以看到在图像的边缘处有明显的方块效应。图(d)如何解决“马赛克”问题?可以采用双线性插值法来实现图像的放大变换。双线性插值法 双线性插值法就是在单位正方形顶点的值已知的情况下,正方形内任意点f (x, y)的值可由双线性方程得到: 在对图像进行空间变换时,输出像素通常被映射到输入图像中的非整数位置,即位于四个输入像素之间。因此,为了决定与该位置相对应的灰度值,必须进行插值运算。,fx yax

2、bycxyda ,b,c和d是常数,由正方形四个顶点的值确定。 ,1,00,00,10,01,10,00,11,00,0f x yffxffyffffxyf首先,在x方向上作线性插值,对上端的两个顶尖进行线性插值得: ( ,0)(0,0)(1,0)(0,0)f xfx ff( ,1)(0,1)(1,1)(0,1)f xfx ff( , )( ,0)( ,1)( ,0)f x yf xy f xf x( , )(1,0)(0,0)(0,1)(0,0)(1,1)(0,0)(0,1)(1,0)(0,0)f x yffxffyffffxyf类似的,对于底端两个顶点进行线性插值有:y方向上作线性插值,以

3、确定:最后得到双线性插值公式为: 相关函数(a) (b) (c) (d)双线性插值法对医学图像放大的结果 图像(a)是原始医学图像 (b)是缩放系数为2的放大图像 (c)是缩放系数为3的放大图像 (d)是缩放系数为4的放大图像 主主要要内容内容: 第三章 图像的基础运算3 3. .1 1 图像图像的代数的代数运算运算图像的代数运算是指以像素为基础,对两幅或多幅输入的图像进行加、减、乘、除、取补等计算而得到输出图像的运算。图像相加可以用于图像合成。图像相减常用于检测两幅或多幅图像之间的变化。图像相乘可以增强可以使高亮度区和低亮度区的对比度进一步增强。图像取补可以将目标对象和背景互换1.加法运算)

4、,(),(),(yxByxAyxC2.减法运算(差分)),(),(),(yxByxAyxC3.乘法运算),(*).,(),(yxByxAyxC4.除法运算),(/).,(),(yxByxAyxC5.补运算),(),(yxAyxC计算两幅图像矩阵对应像素值的和。计算两幅图像矩阵对应像素值的和。前提是两幅图像矩阵的大小和类型相同,前提是两幅图像矩阵的大小和类型相同,维数要相同。维数要相同。调用格式:调用格式:Z=imadd(X,Y)Z=imadd(X,Y)X X、Y Y中的一个可以是常数。中的一个可以是常数。加法运算加法运算+=生成图像叠加效果举例:加法运算加法运算 例例1:使用灰度变换函数将一个

5、灰度图像进行线性点运:使用灰度变换函数将一个灰度图像进行线性点运算算 clc rice=imread(rice.png); J=double(rice); I=J*0.45+55; rice2=uint8(I); subplot(1,2,1);imshow(rice); xlabel(a)原始图像原始图像); subplot(1,2,2);imshow(rice2); xlabel(b)点运算后的图像点运算后的图像);举例:加法运算 图像减法称为差分方法,是一种常用于检测图像变化图像减法称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。可以使用图像减法来检及运动物体的图像处理方法

6、。可以使用图像减法来检测一系列相同场景图像的差异。测一系列相同场景图像的差异。 调用格式:调用格式: Z=imsubtract(X,Y) Z=imsubtract(X,Y) Z Z为输入图像为输入图像X X与输入图像与输入图像Y Y相减的结果。减法操作有时相减的结果。减法操作有时会导致某些像素值变为一个负数,此时,该函数自动会导致某些像素值变为一个负数,此时,该函数自动将这些负数截取为将这些负数截取为0 0,可以调用,可以调用imabsdiffimabsdiff函数,将两函数,将两幅图像相应像素差值的绝对值。幅图像相应像素差值的绝对值。减法运算减去背景图像b(x,y)添加蓝色背景f(x,y)g

7、(x,y)减法运算=可以检测同一场景两幅图像之间的变化 例:原始图像减去背景图像例:原始图像减去背景图像 I=imread(rice.png); subplot(1,2,1);imshow(I); xlabel(a)原始图像原始图像); background=imopen(I,strel(disk,15); Ip=imsubtract(I,background); subplot(1,2,2);imshow(Ip,); xlabel(b)去背景效果去背景效果); 乘法运算可以实现掩膜操作,即屏蔽掉图像的乘法运算可以实现掩膜操作,即屏蔽掉图像的某些部分。某些部分。 一幅图乘以一个常数通常被称为缩

8、放。如果缩一幅图乘以一个常数通常被称为缩放。如果缩放因数大于放因数大于1 1,那么增强图像的亮度,如果缩,那么增强图像的亮度,如果缩放因数小于放因数小于1 1则会使图像变暗。则会使图像变暗。 调用格式:调用格式: Z=immultiply(X,Y)Z=immultiply(X,Y) 对两幅输入图像矩阵对应元素进行点乘。对两幅输入图像矩阵对应元素进行点乘。乘法运算乘法运算图像算术函数图像的逻辑运算 图像的逻辑运算主要针对两幅或多幅二值图像的像素进行操作),(),(),(),(),(),(),(),(),(),(),(),(),(),(yxgyxfyxhyxgxoryxfyxhyxfnotyxhy

9、xgoryxfyxhyxgandyxfyxhI = imread(cameraman.tif);J=imread(rice.png);I1=im2bw(I); %转化为二值图像转化为二值图像J1=im2bw(J);K1=I1 & J1;%逻辑与运算逻辑与运算K2=I1 | J1;%逻辑或运算逻辑或运算K3=I1;%逻辑非运算逻辑非运算K4=xor(I1,J1);%异或运算异或运算figure;%依次显示四幅图像依次显示四幅图像subplot(2,2,1);imshow(I); subplot(2,2,2);imshow(J);subplot(2,2,3);imshow(I1); subplot

10、(2,2,4);imshow(J1);figure;%依次显示四幅图像依次显示四幅图像subplot(221);imshow(K1); subplot(222);imshow(K2);subplot(223);imshow(K3); subplot(224);imshow(K4);2.6.5 2.6.5 图像的几何空间变换图像的几何空间变换 图像的几何空间变换就是把图像像素点的空间位置或图像的空间尺寸按照某种映射关系映射为不同的空间位置或不同的空间尺寸。 几何空间变换主要包括平移(translation)、旋转(rotation)、缩放(zoom)和镜像(mirror)。 几何变换通常有两个步

11、骤:空间变换:定义图像平面上像素的重新安排灰度级插值:处理空间变换后的图像中出现的空白处像素的插值问题 常见的几何变换一般可简化为如下形式:222111cybxaycybxax 矩阵形式如下:(T为变换矩阵) 21212111ccbbaayxTyxyx由于通常需要求出T矩阵的逆变换矩阵,因此将上式改为如下: 100111212121ccbbaayxTyxyx图像的平移图像的平移yyyxxx 注意:注意:x方向与方向与y方向是矩阵的行列方向方向是矩阵的行列方向 10100011yxyxyx注意:平移后的景物与原图像相同,但“画布”一定是扩大了。否则就会丢失信息。2, 1yx下移1 1行,右移2

12、2列x=1,2,3 ; y=1,2,3x=2,3,4 ; y=3,4,51 2 31231 2 3 4 51234图像的旋转图像的旋转cossinsincosyxyyxx 这个计算公式计算出的值为小数,而坐标值为正整数。这个计算公式计算出的值为小数,而坐标值为正整数。 这个计算公式计算的结果值所在范围与原来的值所在这个计算公式计算的结果值所在范围与原来的值所在的范围不同的范围不同。 因此需要因此需要前期处理前期处理:扩大画布,取整处理,平移处理:扩大画布,取整处理,平移处理 (x, y)(x, y)x = r cos (f)y = r sin (f)x = r cos (f + )y = r

13、sin (f + )Trig Identityx = r cos(f) cos() r sin(f) sin()y = r sin(f) sin() + r cos(f) cos()Substitutex = x cos() - y sin()y = x sin() + y cos()图像的旋转例题 30yxyyxx866.05 .05 .0866.0634. 03*5 . 0866. 0minx098. 25 . 03*866. 0maxx366. 15 . 0866. 0miny098. 43*5 . 03*866. 0maxy:1,3;:1,3xy: 1,2;:1,4xy:1,4;:1,

14、4xy结论:按照图像旋转计算公式获得的结果与想象中的差异很大。30图像旋转处理的隐含问题图像旋转的效果示例图像旋转的后处理图像旋转中的插值效果示例图像扩大或缩小图像扩大或缩小函数函数: :imresizeimresize调用格式:调用格式:B=imresiz(A,scale) B=imresiz(A,scale) B=imresiz(A,mrows ncols)B=imresiz(A,mrows ncols)B=imresiz(A,scale,method)B=imresiz(A,scale,method)scale:scale:缩放比例,缩放比例,111放大。放大。method:method

15、:指定插值运算方法指定插值运算方法mrows ncolsmrows ncols指定缩放后图像的行数和列数。指定缩放后图像的行数和列数。图像旋转函数图像旋转函数: :imrotateimrotate调用格式:调用格式:B=imrotate(A,angle) B=imrotate(A,angle) B=imrotate(A,angle,method)B=imrotate(A,angle,method)B=imrotate(A, angle,method,bbox)B=imrotate(A, angle,method,bbox)angle:angle:旋转角度;旋转角度;method:method:

16、指定插值运算方法指定插值运算方法bbox:bbox:有两个值有两个值crop,loose.crop,loose.cropcrop表示旋转后的图像都对剪切中间的部分进行增大,表示旋转后的图像都对剪切中间的部分进行增大,放回和原图大小一致的图像放回和原图大小一致的图像. .looseloose表示返回旋转后完整大小的图像,默认值表示返回旋转后完整大小的图像,默认值注注:数字图像旋转时,各像素的坐标将会发生变化,是的旋转后不能正数字图像旋转时,各像素的坐标将会发生变化,是的旋转后不能正常落在整数坐标处,需要插值。常落在整数坐标处,需要插值。当图像旋转任意角度时,计算出的像素点坐标可能会出现小数,甚至

17、在旋转后的图像中有些像素点在原图像中无对应点。而实际情况要求,图像的坐标必须是整数,旋转后的图像中每个像素点都必须有值。对于那些在原图像中无对应点的像素点可采用局部均值插值法或双线性插值法得到该像素点的像素值。 在医学图像处理中,通常不允许图像信息的损失。在实际的应用中最常用的是对医学图像旋转900、1800和2700。其中最基本和最常用的是旋转900。 医学图像的旋转医学图像的旋转医学图像的旋转是以图像的中心点为坐标原点按逆时针或顺时针方向转一定的角度。任意角度的旋转会损失图像信息! 例:已知原始医学图像,写出图像逆时针旋转900的旋转公式和旋转后的图像。 10861102120312741

18、3491233215788169741052108911091124109011301120111611001084oI按照公式推出: x=-y y=x首先得到图像I0中各像素点对应的坐标: 108611021203127413490,00,10,20,30,41233215788169741,01,11,21,31,4105210891109112410902,02,12,22,32,4113011201116110010843,03,13,23,33,4oI由于图像旋转是以图像中心为坐标原点,因此必须将坐标原点移至图像中心,当图像的行数(高度)或列数(宽度)为偶数时,图像中心不能确定,必须

19、在行或列的末端补充一行或一列,使行数和列数都为奇数,图像中的行数为偶数,补充一行并平移后的图像中各像素点对应的坐标如下: 108611021203127413492, 22, 12,02,12,21233215788169741, 21, 11,01,11,2105210891109112410900, 20, 10,00,10,2113011201116110010841, 21, 11,01,11,2000002, 22, 12,02,12,2oI 108611021203127413490,00,10,20,30,41233215788169741,01,11,21,31,4105210

20、891109112410902,02,12,22,32,4113011201116110010843,03,13,23,33,4oI补充一行前补充一行后根据像素点的对应关系可得旋转后的图像各像素点对应的像素值为: 13499741090108402, 22, 12,02,12,212748161124110001, 21, 11,01,11,212035781109111600, 20, 10,00,10,211023211089112001, 21, 11,01,11,210861231052113002, 22, 12,02,12,2rI 补充的行旋转后变为列,将该列去掉得旋转后的图像为:

21、 1349974109010841274816112411001203578110911161102321 10891120108612310521130rI相关函数(a) (b) (c) (d)图像(a)是原始医学图像, (b)是逆时针旋转90o后的图像, (c)是逆时针旋转180o后的图像, (d)是逆时针旋转270o后的图像。 医学图像旋转结果 图像的镜像 所谓的镜像,通俗地讲,是指在镜子中所成的像。其特所谓的镜像,通俗地讲,是指在镜子中所成的像。其特点是左右颠倒或者是上下颠倒。点是左右颠倒或者是上下颠倒。图像的镜像分水平镜像和垂直镜像两种。图像的水平镜像)(水平镜像yyxxl因为表示图

22、像的矩阵坐标不能为负,因此需要在进因为表示图像的矩阵坐标不能为负,因此需要在进行镜像计算之后,再进行坐标的平移。行镜像计算之后,再进行坐标的平移。11xxxyyNNy (坐标平移)0-1-2-31 2 3图像的水平镜像1 2 3123123-1 -2 -33N 3 2 1123图像的垂直镜像()xxyy 垂直镜像l因为表示图像的矩阵坐标不能为负,因此需要在进因为表示图像的矩阵坐标不能为负,因此需要在进行镜像计算之后,再进行坐标的平移。行镜像计算之后,再进行坐标的平移。11xxMMxyyy (坐标平移)图像的垂直镜像1 2 31 2 31 2 3-1 -2 -33M 1 2 33 2 1相关函数(a) (b) (c)图像(a)是原始医学图像 (b)是水平镜像后的图像 (c)是垂直镜像后的图像 医学图像镜像的结果 10001000111yxyx水平镜像公式的矩阵表示形式10001000111yxyx垂直镜像公式的矩阵表示形式仿射变换相关函数例:对图像进行.8倍缩放,300旋转,邻近插值几何畸变校正 基本的方法:先建立几何校正的数学模型;其次利用已知条件确定模型参数;最后根据模型对图像进行几何校正。通常分两步: 图像空间坐标的变换; 确定校正空间各像素的灰度值(灰度内插)。 空间坐标变换空间坐标变换实际工作中常以一幅图像为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论