1、第六章 几何运算数字图像处理数字图像处理第六章第六章几何运算几何运算第六章 几何运算CH6 几何运算几何运算 一、引言一、引言 二、灰度级插值二、灰度级插值 三、空间变换三、空间变换 四、图像变形四、图像变形 五、要点总结五、要点总结 习题习题第六章 几何运算1 引言引言 点运算点运算对单幅图像做处理,不改变像素的空间位置;对单幅图像做处理,不改变像素的空间位置;代数运算代数运算对多幅图像做处理,也不改变像素的空间位对多幅图像做处理,也不改变像素的空间位置;置;几何运算几何运算对单幅图像做处理,改变像素的空间位置;对单幅图像做处理,改变像素的空间位置;几何运算包含两个独立的算法:几何运算包含两
2、个独立的算法:空间变换算法空间变换算法和和灰度灰度级插值算法级插值算法。第六章 几何运算1 引言引言Lenna及变形图像及变形图像第六章 几何运算 1)向前映射计算法 g(x,y)=f(a(x,y),b(x,y);从原图象坐标计算出目标图象坐标 镜像、平移变换使用这种计算方法2 灰度级插值灰度级插值第六章 几何运算 把输入图像的灰度一个一个像素的转移到输出图像中,如果一个输入像素被映射到四个输出像素之间的位置,则其灰度值就按插值算法在四个输出像素之间进行分配,又称为像素移交(见下页图示)。由于许多输入像素可能映射到输出图像的边界之外,故向前映射算法有些浪费。而且,每个输出像素的灰度值可能要由许
3、多输入像素的灰度值来决定,因而要涉及多次计算。第六章 几何运算 1)向前映射法)向前映射法x1y1f(x1,y1)(x1,y1)整型xyf(x,y)(x,y)非整型象素移交映射通过输入图像像素位置,计算输出图像对应像素位置;将该位置像素的灰度值按某种方式分配到输出图像相邻四个像素.第六章 几何运算 2)向后映射计算法 g(a(x,y),b(x,y)=f(x,y);从结果图象的坐标计算原图象的坐标 旋转、拉伸、放缩可以使用 解决了漏点的问题,出现了马赛克2 灰度级插值灰度级插值第六章 几何运算 把输出像素一次一个地映射回到输入图像中,以便以便确定其灰度级。如果一个输出像素被映射到四个输出像素之间
4、。则其灰度值由灰度级插值决定。向后映射算法是逐像素、逐行地产出输出图像。每个像素的灰度级由最多四个像素参与的插值所唯一确定,只需经过一次计算。当然,这种算法需按空间变换所定义的方式随机访问输入图像,因而可能有些复杂。虽然如此,像素填充法对一般的应用更为切实可行。第六章 几何运算 2)向后映射法)向后映射法x1y1f(x1,y1)(x1,y1)非整型xyf(x,y)(x,y)整型象素填充映射通过输出图像像素位置,计算输入图像对应像素位置;根据输入图像相邻四个像素的灰度值计算该位置像素的灰度值.第六章 几何运算向后映射法图示 如图所示:输出像素A映射到输入图象中的B点,则灰度级由D周围的a、b、c
5、、d四个像素的灰度值确定。只需一次计算。第六章 几何运算2 灰度级插值灰度级插值 两种映射方法的对比两种映射方法的对比 对于向前映射:每个输出图像的灰度要经过多次运对于向前映射:每个输出图像的灰度要经过多次运算;算;对于向后映射:每个输出图像的灰度只要经过一次对于向后映射:每个输出图像的灰度只要经过一次运算。运算。实际应用中,更经常采用向后映射法。实际应用中,更经常采用向后映射法。其中其中,根据四个相邻像素灰度值计算某位置的根据四个相邻像素灰度值计算某位置的像素灰度像素灰度值即为灰度级插值值即为灰度级插值。第六章 几何运算2 灰度级插值灰度级插值 3)最近邻插值)最近邻插值 向后映射时,输出图
6、像的灰度等于离它所映射位置向后映射时,输出图像的灰度等于离它所映射位置最近的输入图像的灰度值。最近的输入图像的灰度值。4)双线性插值)双线性插值 四点确定一个平面函数,属于过约束问题;四点确定一个平面函数,属于过约束问题;问题描述:问题描述:单位正方形顶点已知,求正方形内任一单位正方形顶点已知,求正方形内任一点的点的f(x,y)值值。两种常用方法第六章 几何运算 最邻近插值法 就是最临近点重复第六章 几何运算2 灰度级插值灰度级插值1:,2:0,01,0(0,1)(1,1)3:,1,00,00,10,01,10,01,00,10,0setpf x yaxbycxydstepfdfadfbdfa
7、bcdstepf x yffxffyffffxyf定义双线性方程代入已知四点的值第六章 几何运算2 灰度级插值灰度级插值假设假设f(0,0)=2,f(1,0)=3,f(0,1)=1,f(1,1)=4则则 f(x,y)=x-y+2xy+2012345Z0.20.40.61Y0.20.40.60.81X第六章 几何运算2 灰度级插值灰度级插值第六章 几何运算2 灰度级插值灰度级插值 双线性插值的第二种算法双线性插值的第二种算法,00,01,00,0,10,11,10,1(,)(,0),1,0f xfx fff xfx fff x yf xyf xf x第六章 几何运算灰度级插值 双线性插值(一阶插
8、值)第六章 几何运算4.4.1 几何变换:灰度级插值 高阶插值 双线性插值的缺陷 平滑作用使图象细节退化,尤其在放大时 不连续性会产生不希望的结果 高阶插值的实现 用三次样条插值 常用卷积来实现 将大大增加计算量第六章 几何运算2 灰度级插值灰度级插值 用最近邻插值和双线性插值的方法分别将老虎放大用最近邻插值和双线性插值的方法分别将老虎放大1.5倍。倍。第六章 几何运算2 灰度级插值灰度级插值采用最近邻插值放大采用最近邻插值放大1.5倍倍采用双线性插值放大采用双线性插值放大1.5倍倍第六章 几何运算2 灰度级插值灰度级插值 5)比例变换中对应图像的确定)比例变换中对应图像的确定假设输出图像的宽
9、度为假设输出图像的宽度为W W,高度为,高度为H H;输入图像的宽度为输入图像的宽度为w w高度为高度为h h,要将输入图像的尺度拉伸,要将输入图像的尺度拉伸或压缩变换至输出图像的尺度或压缩变换至输出图像的尺度;按照按照线性插值线性插值的方法,将输入图像的宽度方向分为的方法,将输入图像的宽度方向分为W W等等份,高度方向分为份,高度方向分为H H等份等份;那么输出图像中任意一点(那么输出图像中任意一点(x x,y y)的灰度值就应该由输)的灰度值就应该由输入图像中四点(入图像中四点(a a,b b)、()、(a+1a+1,b b)、()、(a a,b+1b+1)和)和(a+1a+1,b+1b+
10、1)的灰度值来确定。其中)的灰度值来确定。其中a a和和b b的值分别为:的值分别为:whaxbyWH第六章 几何运算3 空间变换空间变换 1)简单变换)简单变换 2)多项式卷绕和几何校正)多项式卷绕和几何校正 3)控制栅格插值和图像卷绕)控制栅格插值和图像卷绕第六章 几何运算3 空间变换空间变换 1)简单变换)简单变换 问题描述:图像的平移、放缩和旋转。问题描述:图像的平移、放缩和旋转。解题思路:从易到难。工具:线性代数中的齐次坐解题思路:从易到难。工具:线性代数中的齐次坐标。标。00001:,10,0110011stepa x yxxb x yyya x yxxb x yyy 图象的平移第
11、六章 几何运算3 空间变换空间变换2:yd,00,0010011stepxca x ycxb x ydya x ycxb x ydy 图象在 方向放大 倍,方向放大 倍。第六章 几何运算3 空间变换空间变换 3:,cos-ysin ,sin+ycos,cossin0,sincos010011stepa x yxb x yxa x yxb x yy 图象饶原点顺时针旋转 角。x,ya,brr第六章 几何运算3 空间变换空间变换coscoscossinsincossinsinsincoscossincossinsincosarrrxybrrryxxy 注意注意:推导中假设顺时针为正值推导中假设顺时
12、针为正值;若根据惯例若根据惯例,定义逆时针定义逆时针为正值为正值,则转换公式为则转换公式为第六章 几何运算不指定是顺时针不指定是顺时针还是逆时针还是逆时针,由由值的正负确定值的正负确定3 空间变换空间变换 复合变换:绕点复合变换:绕点(x0,y0)旋转旋转角。角。sinsincoscossincoscoscossinsin三角公式:0000,10cossin010,01sincos00110010010011a x yxxxb x yyyy 第六章 几何运算3 空间变换空间变换 2)多项式卷绕和几何校正)多项式卷绕和几何校正 几何校正几何校正(calibration):由于镜头的几何变形,使由
13、于镜头的几何变形,使用矩形栅格校准。用矩形栅格校准。多项式卷绕多项式卷绕:多项式的项数与控制点数相同,解线:多项式的项数与控制点数相同,解线性方程组,得系数后矩阵求逆。性方程组,得系数后矩阵求逆。测试靶测试靶对应的鱼眼图像对应的鱼眼图像第六章 几何运算3 空间变换空间变换变形后的老虎变形后的老虎校正后的老虎校正后的老虎第六章 几何运算3 空间变换空间变换 多项式卷绕的基本原理多项式卷绕的基本原理 对于一个有对于一个有10个点的测试靶,可以设计一个二维三个点的测试靶,可以设计一个二维三阶函数拟合。阶函数拟合。20123422233567893011113212223910101010111 p
14、x,ycc xc yc xyc xc yc x yc xyc xc ycp x,yxycp x,yxycp x,yxy第六章 几何运算3 空间变换空间变换 3)控制栅格插值和图像卷绕)控制栅格插值和图像卷绕 控制栅格插值:将图像分成小块进行卷绕变换。控制栅格插值:将图像分成小块进行卷绕变换。常用双线性插值。常用双线性插值。又是双线性插值,区别?又是双线性插值,区别?(请思考请思考)第六章 几何运算3 空间变换空间变换第六章 几何运算3 空间变换空间变换第六章 几何运算http:/ 图像变形图像变形鼠标点击观看演示鼠标点击观看演示第六章 几何运算4 图像变形图像变形第六章 几何运算I=imrea
15、d(cameraman.tif);udata=0 1;vdata=0 1;%input coordinate system tform=maketform(projective,0 0;1 0;1 1;0 1,.-4 2;-8-3;-3-5;6 3);B,xdata,ydata=imtransform(I,tform,bicubic,.udata,udata,.vdata,vdata,.size,size(I),.fill,128);subplot(1,2,1),imshow(udata,vdata,I),axis on subplot(1,2,2),imshow(xdata,ydata,B)
16、,axis on 第六章 几何运算 I=imread(cameraman.tif);udata=0 1;vdata=0 1;%input coordinate system tform=maketform(projective,0 0;1 0;1 1;0 1,.-4 2;-8-3;-3-5;6 3);B,xdata,ydata=imtransform(I,tform,bicubic,.udata,udata,.vdata,vdata,.size,size(I),.fill,128);subplot(1,2,1),imshow(udata,vdata,I),axis on subplot(1,2
17、,2),imshow(xdata,ydata,B),axis on 第六章 几何运算5 要点总结要点总结 1)几何运算包括空间变换和灰度级插值两步;)几何运算包括空间变换和灰度级插值两步;2)灰度级插值有向前映射和向后映射两种;)灰度级插值有向前映射和向后映射两种;3)灰度级插值有包括最近邻插值和双线性插值两类;)灰度级插值有包括最近邻插值和双线性插值两类;4)几何运算可用在几何校正、图像卷绕以及图像变形)几何运算可用在几何校正、图像卷绕以及图像变形等应用中。等应用中。第六章 几何运算习题习题 P117第第1题题 221.3221222221.3396.7396397396.7F 221,39
18、745.F x,396F 221,396x F 222,396F 221,3961834xF x,397F 221,397x F 222,397F 221,397459xF x,yF x,396y F x,397F x,3961834xy 459x183解:且解:且最邻近插值F 221.3,396.7最邻近插值F 221.3,396.7 4x1834x27y43xyF 0.3,0.738第六章 几何运算习题习题 P118第第2题题 F 1,0F 0,0 xF 0,1F 0,0yF 1,1F 0,0F 1,0F 0,1xyF 0,08x4y2xy113F 1.27,1.44100.74 解:F
19、x,y解:F x,y第六章 几何运算习题习题 P118第第3题题 0000,10cossin010,01sincos00110010010011,10207cos30sin300,01421sin30cos30010010a x yxxxb x yyyya x yb x y o解:代入(207,421)和-33 得1020701421010011xy 第六章 几何运算习题习题 P118第第4题题解解:第六章 几何运算习题习题 111111122A 0,0,B 5,240,A13,7,B18,213step1:AAx1013xy017y10011step2:BA B240220arctgarctg55xcossin01013ysincos00171001001 令令将 点平移到点将 点平移到点将 点旋转到上,将 点旋转到上,旋转角度=旋转角度=xy1 第六章 几何运算习题习题 11223232step3:BxByc,dxyxc00 xy0d0y10011 进行缩放变换进行缩放变换