图像的几何变换课件_第1页
图像的几何变换课件_第2页
图像的几何变换课件_第3页
图像的几何变换课件_第4页
图像的几何变换课件_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

(等比例)缩小(等比例)缩小(不等比例)缩小(不等比例)缩小旋转旋转变形变形图像的几何变换(实质及分类)图像的几何变换是指使(用户获得或设计的)原始图像按照需要产生大小、形状和位置的变化。不改变图像的象素值,而是改变象素所在的几何位置。①图像的位置变换平移、镜像、旋转②图像的形状变换放大、缩小、错切③图像的复合变换④透视变换图像的几何变换(实质及分类)图像的几何变换是指使(用户获得或图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础几何变换基础【问题】变换中心在坐标原点的比例缩放、反射、错切和旋转等二维图像的几何变换可以用2×2的变换矩阵表示和实现。2×2的变换矩阵不能实现图像的平移以及绕任意点的比例缩放、反射、错切和旋转等二维图像的几何变换。【解决方法】齐次坐标使得可以用统一的矩阵线性变换形式表示和实现常见的二维图像的几何变换。几何变换基础【问题】齐次坐标点P0(x0,y0)平移到P(x,y)。x、y方向的平移量分别为Δx、Δy。变换的矩阵表示形式平面上点的变换矩阵中没有引入平移常量,无论a、b、c、d取什么值,都不能实现上述的平移变换。引入2×3阶变换矩阵(第一、二列构成单位矩阵,第三列元素为平移常量)。变换前后的坐标关系只需将变换矩阵(2×3)乘以图像的点集矩阵(2×n)即可实现二维图像的几何变换。齐次坐标点P0(x0,y0)平移到P(x,y)。x、y齐次坐标【问题】二维图像对应的点集矩阵是2×n阶的,而扩展后的变换矩阵是2×3阶的矩阵,这不符合矩阵相乘时要求前者的列数与后者的行数相等的规则。【解决方法】在点的坐标列矩阵[xy]T中引入第三个元素,增加一个附加坐标,扩展为3×1的列矩阵[xy1]T,这样用三维空间点(x,y,1)表示二维空间点(x,y)实现平移变换。齐次坐标【问题】齐次坐标通常将2×3阶矩阵扩充为3×3阶矩阵以拓宽功能。这种用n+1维向量表示n维向量的方法称为齐次坐标表示法。二维图像中的点坐标(x,y)通常表示成齐次坐标(Hx,Hy,H)。H表示非零的任意实数。当H=1时,(x,y,1)就称为点(x,y)的规范化齐次坐标。规范化齐次坐标的前两个数是相应二维点的坐标,没有变化,仅在原坐标中增加了H=1的附加坐标。齐次坐标通常将2×3阶矩阵扩充为3×3阶矩阵以拓宽功能。齐次坐标(几何意义)齐次坐标相当于点(x,y)落在三维空间H=1的平面上。将XOY平面内的三角形abc的各顶点表示成规范化齐次坐标(xi,yi,1)(i=1,2,3)的形式,就变成H=1平面内的三角形a1b1c1的各顶点。齐次坐标(几何意义)齐次坐标相当于点(x,y)落在三维空间二维图像几何变换矩阵采用齐次坐标,并将变换矩阵改成3×3阶的形式后,便可实现所有二维图像几何变换的基本变换。二维点集矩阵变换矩阵齐次坐标形式的点集矩阵新齐次坐标规范化后的点集矩阵新齐次坐标的点集矩阵二维图像几何变换矩阵采用齐次坐标,并将变换矩阵改成3×3阶的图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像比例缩放图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fx≠fy,图像的比例缩放会改变原始图像的像素间的相对位置,产生几何畸变。原图像中的点P0(x0,y0)比例缩放后,在新图像中的对应点为P(x,y)。图像比例缩放图像比例缩放是指将给定的图像在x轴方向按比例缩放图像比例缩放(插值)比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,这样就必须进行插值处理。①直接赋值为和它最相近的像素值——最邻近插值法(NearestNeighborInterpolation)。最近邻插值法计算简单,但会出现马赛克现象。②通过(线性、样条、…)插值算法计算相应的像素值。处理效果要好,但运算量也相应增加。图像比例缩放(插值)比例缩放所产生的图像中的像素可能在原图像图像的尺寸减半图像的尺寸减半图像比例缩放(缩小)最简单的比例缩小是当fx=fy=1/2时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,依此类推。图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇)数列构成新的图像。图像缩小一半图像比例缩放(缩小)最简单的比例缩小是当fx=fy=1/2时图像按任意比例缩小图像按任意比例缩小图像比例缩放(缩小)如果图像按任意比例缩小,则需要计算选择的行和列。M×N大小的原图像F(x,y)缩小为kM×kN大小(k<1)的新图像I(x,y),c=1/k。图像按任意比例缩小图像比例缩放(缩小)如果图像按任意比例缩小,则需要计算选择的图像比例缩放(缩小)当fx≠fy(fx,fy>0)时,图像不按比例缩小,这种操作因为在x方向和y方向的缩小比例不同,一定会带来图像的几何畸变。M×N大小的图像F(x,y)缩小为k1M×k2N(k1<1,k2<1)大小的新图像I(x,y)c1=1/k1,c2=1/k2图像在缩小操作中,是在现有的信息里如何挑选所需要的有用信息。图像比例缩放(缩小)当fx≠fy(fx,fy>0)时,图像图像比例缩放(放大)图像的放大需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。当fx=fy=2时,图像被按全比例放大2倍。放大后图像中的(0,0)像素对应于原图中的(0,0)像素。(0,1)像素对应于原图中的(0,0.5)像素,该像素不存在,可以近似为(0,0)也可以近似(0,1)。(0,2)像素对应于原图像中的(0,1)像素。(1,0)像素对应于原图中的(0.5,0),它的像素值近似于(0,0)或(1,0)像素。(2,0)像素对应于原图中的(1,0)像素。依此类推。原图像每行中的像素重复取值一遍,然后每行重复一次。图像比例缩放(放大)图像的放大需要对尺寸放大后所多出来的空格图像比例缩放(放大)1913742061081514113125119913137711991313774422006644220066101088151514141010881515141411113312125511113312125519137?4206放大两倍(最近邻插值)放大两倍(线性插值)图像比例缩放(放大)19137420610815141131图像比例缩放(放大)如果按照最近邻域法则需要将一个像素值添在新图像的k×k的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。当fx≠fy(fx,fy>0)时,图像在x方向和y方向不按比例放大(放大方法:将原图像的一个像素添到新图像的一个k1×k2的子块中),这种操作由于x方向和y方向的放大倍数不同,一定带来图像的几何畸变。图像比例缩放(放大)如果按照最近邻域法则需要将一个像素值添在图像比例缩放(线性插值)【线性插值原理】当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。线性插值法示意图图像比例缩放(线性插值)【线性插值原理】线性插值法示意图图像比例缩放(编程)图像比例缩放(编程)图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像平移图像的平移是将一幅图像上的所有点都按照给定的偏移量在水平方向沿x轴、在垂直方向上沿y轴移动,平移后的图像与原图像相同。图像平移图像平移图像的平移是将一幅图像上的所有点都按照给定的偏移量在图像平移平移后的图像上的每一点不一定都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应坐标为(-Δx,-Δy)。如果Δx或Δy大于0,则点(-Δx,-Δy)不在原图像中,表明没有原图像中的点与之对应。如果没有原图像中的点与平移后的图像的点对应,可以直接将该点的像素值统一设置为0或者255(对于灰度图就是黑色或白色)。【扩大显示区域】若没有图像中的像素点与平移后的图像的像素点对应,也就说明原图像中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|Δx|,高度扩大|Δy|。图像平移平移后的图像上的每一点不一定都可以在原图像中找到对应图像平移(编程)图像平移(编程)图像平移(实例)原图像平移后的(显示区域大小不变)图像平移后的(显示区域扩大)图像图像平移(实例)原图像平移后的(显示区域大小不变)图像平移后图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像镜像图像的水平镜像操作是将图像左半部分和右半部分以图像垂直中轴线为中心进行镜像对换。图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心进行镜像对换。水平镜像垂直镜像123569470321965074470569123xy0xy0xy0图像镜像图像的水平镜像操作是将图像左半部分和右半部分以图像垂图像镜像水平镜像垂直镜像图像镜像水平镜像垂直镜像图像镜像(编程)图像镜像(编程)图像镜像(实例)图像镜像(实例)图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像旋转一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换是图像的位置变换,但旋转后,图像的大小一般会改变。图像旋转变换后,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。图像旋转一般图像的旋转是以图像的中心为原点,将图像上的所有像图像旋转(x,y)r(x0,y0)rαθ图像旋转(x,y)r(x0,y0)rαθ图像旋转如果图像旋转是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回原来的坐标原点。图像旋转如果图像旋转是绕一个指定点(a,b)旋转,则先要将图像的几何变换课件图像旋转(Matlab编程)%-------------Image(M×N)Rotation----------------function[ImR,MR,NR]=ImageRotation(Im,theta)%(1)将图像(Im)平移,使图像中心移至坐标原点%(2)将平移后的图像旋转角度theta%(3)平移图像使得坐标原点对应图像的左上角%(4)注意:因为图像为一个矩形区域,旋转必然导致矩形区域扩大,所以旋转后图像(ImR)的尺寸变大。%为了找到旋转后图像每个像素在原图像中的对应位置%(5)首先将旋转后的图像平移,使得图像中心移至坐标原点%(6)将平移后的图像旋转角度-theta%(7)最近邻插值%Im:Image%theta:旋转角度(-pi~pi)%ImR:Imagerotatedwiththeta%MR:旋转后图像的行数%NR:旋转后图像的列数%--------------------------------------------------图像旋转(Matlab编程)%-------------Im[M,N]=size(Im);%Thedimensionoftheoriginalimage%TheTransformMatrixTransformM=[cos(theta),sin(theta),0;-sin(theta),cos(theta),0;0,0,1];invTransformM=TransformM';%ForSimplicity,supposedthatMandNisOddnumber.%为简单起见,假设M和N均为奇数tmp=TransformM*[(N-1)/2,(M-1)/2,1;-(N-1)/2,-(M-1)/2,1;-(N-1)/2,(M-1)/2,1;(N-1)/2,-(M-1)/2,1;]';%同样,旋转后图像的行数和列数均为奇数MR=2*(fix(max(tmp(2,:)))+1)+1;NR=2*(fix(max(tmp(1,:)))+1)+1;%BeforeRotation,thecoordinatesystemis(x,y):M×N%AfterRotation,thecoordinatesystemis(w,z):MR×NR[wi,zj]=meshgrid([0:(MR-1)]-(MR-1)/2,[0:(NR-1)]-(NR-1)/2);[M,N]=size(Im);%Thedtmp=invTransformM*[wi(:)';zj(:)';ones(1,MR*NR)];x=round(tmp(1,:)+(M-1)/2)+1;y=round(tmp(2,:)+(N-1)/2)+1;ImR=zeros(MR,NR);forw=1:MRforz=1:NRif((x((w-1)*NR+z)>0)&&(y((w-1)*NR+z)>0)&&(x((w-1)*NR+z)<=M)&&(y((w-1)*NR+z)<=N))ImR(w,z)=Im(x((w-1)*NR+z),y((w-1)*NR+z));endendend最近邻插值tmp=invTransformM*[wi(:)';zj图像旋转(Matlab编程实例)clear;clc;Im=imread('Fig0335(a).jpg');figure('Name','Image','Numbertitle','off');imshow(Im,[]);impixelinfo;theta=45/180*pi;[ImR,MR,NR]=ImageRotation(Im,theta);figure('Name','ImageafterRotating','Numbertitle','off');imshow(ImR,[]);impixelinfo;图像旋转(Matlab编程实例)clear;clc;图像的几何变换课件图像旋转(实例)旋转15°并进行插值处理的图像图像旋转(实例)旋转15°并进行插值处理的图像图像的几何变换课件图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像复合变换图像的复合变换是指对给定的图像连续施行若干次如前所述的平移、镜像、比例、旋转等基本变换后所完成的变换,图像的复合变换又叫级联变换。利用齐次坐标,对给定的图像依次按一定顺序连续施行若干次基本变换,其变换的矩阵仍然可以用3×3阶的矩阵表示。复合变换的矩阵等于基本变换的矩阵按顺序依次相乘得到的组合矩阵。设对给定的图像依次进行了基本变换F1,F2,…,FN,它们的变换矩阵分别为T1,T2,…,TN,按照几何变换公式的表示形式,图像复合变换的矩阵T可以表示为:T=TNTN-1…T1。图像复合变换图像的复合变换是指对给定的图像连续施行若干次如前图像复合变换常见的复合变换①同一种基本变换依次连续进行若干次例如,复合平移、复合比例缩放、复合旋转等等。②包含有不同的基本变换例如,图像的转置、绕任意点的比例缩放、绕任意点的旋转等等。图像复合变换常见的复合变换图像复合变换复合平移相对原点(图像中央)变换图像复合变换复合平移相对原点(图像中央)变换图像复合变换复合比例相对原点(图像中央)变换图像复合变换复合比例相对原点(图像中央)变换图像复合变换复合旋转相对原点(图像中央)变换图像复合变换复合旋转相对原点(图像中央)变换图像复合变换如果要相对某一个参考点作变换,则要使用含有不同种基本变换的图像复合变换。不同的复合变换,其变换过程不同,但是无论它的变换过程多么复杂,都可以分解成一系列基本变换。相应地,使用齐次坐标后,图像复合变换的矩阵由一系列图像基本几何变换矩阵依次相乘而得到。图像复合变换如果要相对某一个参考点作变换,则要使用含有不同种图像复合变换在进行图像的比例缩放、图像的旋转变换时,整个变换过程由两部分组成,即需要两个独立的算法。①几何变换用它描述每个像素如何从其初始位置移动到终止位置。②灰度级插值在一般情况下,原始(输入)图像的位置坐标(x,y)为整数,而变换后(输出)图像的位置坐标为非整数,即产生“空穴”,反过来也是如此。因此,一般地,在进行图像的几何变换时,除了要进行其本身的几何变换外,还要进行灰度级插值处理。图像复合变换在进行图像的比例缩放、图像的旋转变换时,整个变换灰度级插值处理方法①像素移交(pixelcarryover)↔向前映射法把几何变换想像成将输入图像的灰度一个一个像素地转移到输出图像中。如果一个输入像素被映射到四个输出像素之间的位置,则其灰度值就按插值算法在四个输出像素之间进行分配。②像素填充(pixelfilling)↔向后映射算法输出像素一次一个地映射回到原始(输入)图像中,以便确定其灰度级。如果一个输出像素被映射到四个输出像素之间,则其灰度值由灰度级插值决定。向后空间变换是向前变换的逆变换。常用插值方法:零阶插值(最近邻插值、最近邻域法)、一阶插值(双线性插值法)灰度级插值处理方法①像素移交(pixelcarryove灰度级插值处理方法(双线性插值法)灰度级插值处理方法(双线性插值法)图像复合变换示例图像旋转绕一个指定点(a,b)旋转:先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回原来的坐标原点。将坐标系Ⅰ平移到坐标系Ⅱ处,其中坐标系Ⅱ的原点再坐标系Ⅰ中的坐标为(a,b)。图像复合变换示例图像旋转绕一个指定点(a,b)旋转:先要将图像复合变换示例图像复合变换示例图像复合变换示例图像复合变换示例图像复合变换示例图像复合变换示例图像复合变换(编程)图像复合变换(编程)图像复合变换(实例)图像复合变换(实例)图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础透视变换透视变换透视变换(编程)透视变换(编程)透视变换(实例)透视变换(实例)习题习题Thanks!Thanks!(等比例)缩小(等比例)缩小(不等比例)缩小(不等比例)缩小旋转旋转变形变形图像的几何变换(实质及分类)图像的几何变换是指使(用户获得或设计的)原始图像按照需要产生大小、形状和位置的变化。不改变图像的象素值,而是改变象素所在的几何位置。①图像的位置变换平移、镜像、旋转②图像的形状变换放大、缩小、错切③图像的复合变换④透视变换图像的几何变换(实质及分类)图像的几何变换是指使(用户获得或图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础几何变换基础【问题】变换中心在坐标原点的比例缩放、反射、错切和旋转等二维图像的几何变换可以用2×2的变换矩阵表示和实现。2×2的变换矩阵不能实现图像的平移以及绕任意点的比例缩放、反射、错切和旋转等二维图像的几何变换。【解决方法】齐次坐标使得可以用统一的矩阵线性变换形式表示和实现常见的二维图像的几何变换。几何变换基础【问题】齐次坐标点P0(x0,y0)平移到P(x,y)。x、y方向的平移量分别为Δx、Δy。变换的矩阵表示形式平面上点的变换矩阵中没有引入平移常量,无论a、b、c、d取什么值,都不能实现上述的平移变换。引入2×3阶变换矩阵(第一、二列构成单位矩阵,第三列元素为平移常量)。变换前后的坐标关系只需将变换矩阵(2×3)乘以图像的点集矩阵(2×n)即可实现二维图像的几何变换。齐次坐标点P0(x0,y0)平移到P(x,y)。x、y齐次坐标【问题】二维图像对应的点集矩阵是2×n阶的,而扩展后的变换矩阵是2×3阶的矩阵,这不符合矩阵相乘时要求前者的列数与后者的行数相等的规则。【解决方法】在点的坐标列矩阵[xy]T中引入第三个元素,增加一个附加坐标,扩展为3×1的列矩阵[xy1]T,这样用三维空间点(x,y,1)表示二维空间点(x,y)实现平移变换。齐次坐标【问题】齐次坐标通常将2×3阶矩阵扩充为3×3阶矩阵以拓宽功能。这种用n+1维向量表示n维向量的方法称为齐次坐标表示法。二维图像中的点坐标(x,y)通常表示成齐次坐标(Hx,Hy,H)。H表示非零的任意实数。当H=1时,(x,y,1)就称为点(x,y)的规范化齐次坐标。规范化齐次坐标的前两个数是相应二维点的坐标,没有变化,仅在原坐标中增加了H=1的附加坐标。齐次坐标通常将2×3阶矩阵扩充为3×3阶矩阵以拓宽功能。齐次坐标(几何意义)齐次坐标相当于点(x,y)落在三维空间H=1的平面上。将XOY平面内的三角形abc的各顶点表示成规范化齐次坐标(xi,yi,1)(i=1,2,3)的形式,就变成H=1平面内的三角形a1b1c1的各顶点。齐次坐标(几何意义)齐次坐标相当于点(x,y)落在三维空间二维图像几何变换矩阵采用齐次坐标,并将变换矩阵改成3×3阶的形式后,便可实现所有二维图像几何变换的基本变换。二维点集矩阵变换矩阵齐次坐标形式的点集矩阵新齐次坐标规范化后的点集矩阵新齐次坐标的点集矩阵二维图像几何变换矩阵采用齐次坐标,并将变换矩阵改成3×3阶的图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像比例缩放图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴方向按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fx≠fy,图像的比例缩放会改变原始图像的像素间的相对位置,产生几何畸变。原图像中的点P0(x0,y0)比例缩放后,在新图像中的对应点为P(x,y)。图像比例缩放图像比例缩放是指将给定的图像在x轴方向按比例缩放图像比例缩放(插值)比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,这样就必须进行插值处理。①直接赋值为和它最相近的像素值——最邻近插值法(NearestNeighborInterpolation)。最近邻插值法计算简单,但会出现马赛克现象。②通过(线性、样条、…)插值算法计算相应的像素值。处理效果要好,但运算量也相应增加。图像比例缩放(插值)比例缩放所产生的图像中的像素可能在原图像图像的尺寸减半图像的尺寸减半图像比例缩放(缩小)最简单的比例缩小是当fx=fy=1/2时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素对应于原图像中的(0,0)像素;(0,1)像素对应于原图像中的(0,2)像素;(1,0)像素对应于原图像中的(2,0)像素,依此类推。图像缩小之后,因为承载的信息量小了,所以画布可相应缩小。此时,只需在原图像基础上,每行隔一个像素取一点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇)数列构成新的图像。图像缩小一半图像比例缩放(缩小)最简单的比例缩小是当fx=fy=1/2时图像按任意比例缩小图像按任意比例缩小图像比例缩放(缩小)如果图像按任意比例缩小,则需要计算选择的行和列。M×N大小的原图像F(x,y)缩小为kM×kN大小(k<1)的新图像I(x,y),c=1/k。图像按任意比例缩小图像比例缩放(缩小)如果图像按任意比例缩小,则需要计算选择的图像比例缩放(缩小)当fx≠fy(fx,fy>0)时,图像不按比例缩小,这种操作因为在x方向和y方向的缩小比例不同,一定会带来图像的几何畸变。M×N大小的图像F(x,y)缩小为k1M×k2N(k1<1,k2<1)大小的新图像I(x,y)c1=1/k1,c2=1/k2图像在缩小操作中,是在现有的信息里如何挑选所需要的有用信息。图像比例缩放(缩小)当fx≠fy(fx,fy>0)时,图像图像比例缩放(放大)图像的放大需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。当fx=fy=2时,图像被按全比例放大2倍。放大后图像中的(0,0)像素对应于原图中的(0,0)像素。(0,1)像素对应于原图中的(0,0.5)像素,该像素不存在,可以近似为(0,0)也可以近似(0,1)。(0,2)像素对应于原图像中的(0,1)像素。(1,0)像素对应于原图中的(0.5,0),它的像素值近似于(0,0)或(1,0)像素。(2,0)像素对应于原图中的(1,0)像素。依此类推。原图像每行中的像素重复取值一遍,然后每行重复一次。图像比例缩放(放大)图像的放大需要对尺寸放大后所多出来的空格图像比例缩放(放大)1913742061081514113125119913137711991313774422006644220066101088151514141010881515141411113312125511113312125519137?4206放大两倍(最近邻插值)放大两倍(线性插值)图像比例缩放(放大)19137420610815141131图像比例缩放(放大)如果按照最近邻域法则需要将一个像素值添在新图像的k×k的子块中。显然,如果放大倍数太大,按照这种方法处理会出现马赛克效应。当fx≠fy(fx,fy>0)时,图像在x方向和y方向不按比例放大(放大方法:将原图像的一个像素添到新图像的一个k1×k2的子块中),这种操作由于x方向和y方向的放大倍数不同,一定带来图像的几何畸变。图像比例缩放(放大)如果按照最近邻域法则需要将一个像素值添在图像比例缩放(线性插值)【线性插值原理】当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。线性插值法示意图图像比例缩放(线性插值)【线性插值原理】线性插值法示意图图像比例缩放(编程)图像比例缩放(编程)图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像平移图像的平移是将一幅图像上的所有点都按照给定的偏移量在水平方向沿x轴、在垂直方向上沿y轴移动,平移后的图像与原图像相同。图像平移图像平移图像的平移是将一幅图像上的所有点都按照给定的偏移量在图像平移平移后的图像上的每一点不一定都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应坐标为(-Δx,-Δy)。如果Δx或Δy大于0,则点(-Δx,-Δy)不在原图像中,表明没有原图像中的点与之对应。如果没有原图像中的点与平移后的图像的点对应,可以直接将该点的像素值统一设置为0或者255(对于灰度图就是黑色或白色)。【扩大显示区域】若没有图像中的像素点与平移后的图像的像素点对应,也就说明原图像中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|Δx|,高度扩大|Δy|。图像平移平移后的图像上的每一点不一定都可以在原图像中找到对应图像平移(编程)图像平移(编程)图像平移(实例)原图像平移后的(显示区域大小不变)图像平移后的(显示区域扩大)图像图像平移(实例)原图像平移后的(显示区域大小不变)图像平移后图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像镜像图像的水平镜像操作是将图像左半部分和右半部分以图像垂直中轴线为中心进行镜像对换。图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心进行镜像对换。水平镜像垂直镜像123569470321965074470569123xy0xy0xy0图像镜像图像的水平镜像操作是将图像左半部分和右半部分以图像垂图像镜像水平镜像垂直镜像图像镜像水平镜像垂直镜像图像镜像(编程)图像镜像(编程)图像镜像(实例)图像镜像(实例)图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转图像复合变换透视变换图像的几何变换几何变换基础图像旋转一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换是图像的位置变换,但旋转后,图像的大小一般会改变。图像旋转变换后,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。图像旋转一般图像的旋转是以图像的中心为原点,将图像上的所有像图像旋转(x,y)r(x0,y0)rαθ图像旋转(x,y)r(x0,y0)rαθ图像旋转如果图像旋转是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回原来的坐标原点。图像旋转如果图像旋转是绕一个指定点(a,b)旋转,则先要将图像的几何变换课件图像旋转(Matlab编程)%-------------Image(M×N)Rotation----------------function[ImR,MR,NR]=ImageRotation(Im,theta)%(1)将图像(Im)平移,使图像中心移至坐标原点%(2)将平移后的图像旋转角度theta%(3)平移图像使得坐标原点对应图像的左上角%(4)注意:因为图像为一个矩形区域,旋转必然导致矩形区域扩大,所以旋转后图像(ImR)的尺寸变大。%为了找到旋转后图像每个像素在原图像中的对应位置%(5)首先将旋转后的图像平移,使得图像中心移至坐标原点%(6)将平移后的图像旋转角度-theta%(7)最近邻插值%Im:Image%theta:旋转角度(-pi~pi)%ImR:Imagerotatedwiththeta%MR:旋转后图像的行数%NR:旋转后图像的列数%--------------------------------------------------图像旋转(Matlab编程)%-------------Im[M,N]=size(Im);%Thedimensionoftheoriginalimage%TheTransformMatrixTransformM=[cos(theta),sin(theta),0;-sin(theta),cos(theta),0;0,0,1];invTransformM=TransformM';%ForSimplicity,supposedthatMandNisOddnumber.%为简单起见,假设M和N均为奇数tmp=TransformM*[(N-1)/2,(M-1)/2,1;-(N-1)/2,-(M-1)/2,1;-(N-1)/2,(M-1)/2,1;(N-1)/2,-(M-1)/2,1;]';%同样,旋转后图像的行数和列数均为奇数MR=2*(fix(max(tmp(2,:)))+1)+1;NR=2*(fix(max(tmp(1,:)))+1)+1;%BeforeRotation,thecoordinatesystemis(x,y):M×N%AfterRotation,thecoordinatesystemis(w,z):MR×NR[wi,zj]=meshgrid([0:(MR-1)]-(MR-1)/2,[0:(NR-1)]-(NR-1)/2);[M,N]=size(Im);%Thedtmp=invTransformM*[wi(:)';zj(:)';ones(1,MR*NR)];x=round(tmp(1,:)+(M-1)/2)+1;y=round(tmp(2,:)+(N-1)/2)+1;ImR=zeros(MR,NR);forw=1:MRforz=1:NRif((x((w-1)*NR+z)>0)&&(y((w-1)*NR+z)>0)&&(x((w-1)*NR+z)<=M)&&(y((w-1)*NR+z)<=N))ImR(w,z)=Im(x((w-1)*NR+z),y((w-1)*NR+z));endendend最近邻插值tmp=invTransformM*[wi(:)';zj图像旋转(Matlab编程实例)clear;clc;Im=imread('Fig0335(a).jpg');figure('Name','Image','Numbertitle','off');imshow(Im,[]);impixelinfo;theta=45/180*pi;[ImR,MR,NR]=ImageRotation(Im,theta);figure('Name','ImageafterRotating','Numbertitle','off');imshow(ImR,[]);impixelinfo;图像旋转(Matlab编程实例)clear;clc;图像的几何变换课件图像旋转(实例)旋转15°并进行插值处理的图像图像旋转(实例)旋转15°并进行插值处理的图像图像的几何变换课件图像的几何变换几何变换基础图像比例缩放图像平移图像镜像图像旋转

温馨提示

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

评论

0/150

提交评论