重要 图像的几何变换.doc_第1页
重要 图像的几何变换.doc_第2页
重要 图像的几何变换.doc_第3页
重要 图像的几何变换.doc_第4页
全文预览已结束

下载本文档

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

文档简介

图像的几何变换,是指使用户获得或设计的原始图像,按照需要产生大小、形状和位置的变化。 从变换的性质分,图像的几何变换有位置变换(平移、镜像、旋转)、形状变换(比例缩放、错切)和复合变换等。 1. 图像的位置变换主要包括图像平移变换、图像镜像变换和图像旋转变换等,下面针对这三个主要的位置变换进行分析。 平移变换的几点说明: (1)平移后图像上的每一点都可以在原图像中找到对应的点。对于不在原图像中的点,可以直接将它的像素值统一设置为0或者255(对于灰度图就是黑色或白色)。 (2)若图像平移后图像不放大,说明移出的部分被截断。 (3) 若不想丢失被移出的部分图像,将新生成的图像扩大. 图像镜像变换 图像的镜像变换不改变图像的形状。图像的镜像(Mirror)变换分为三种:水平镜像,垂直镜像和对角镜像。 1. 图像水平镜像图像的水平镜像操作是将图像左半部分和右半部分以图像垂直中轴线为中心进行镜像对换。 2. 图像垂直镜像图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心进行镜像对换。 3. 图像对角镜像 图像的对角镜像操作是将图像以图像水平中轴线和垂直中轴线的交点为中心进行镜像对换。相当于将图像先后进行水平镜像和垂直镜像。 图像旋转变换 旋转(rotation)有一个绕着什么转的问题,通常的做法是以图像的中心为圆心旋转,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换是图像的位置变换,但旋转后,图像的大小一般会改变。和图像平移一样, 在图像旋转变换中既可以把转出显示区域的图像截去,旋转后也可以扩大图像范围以显示所有的图像。 2. 图像形状变换 图像比例缩放变换 图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍, 在y轴方向按比例缩放fy倍,从而获得一幅新的图像。(1). 图像的比例缩小变换 从数码技术的角度来说,图像的缩小是将通过减少像素个数来实现的,因此,需要根据所期望缩小的尺寸数据,从原图像中选择合适的像素点,使图像缩小之后可以尽可能保持原有图像的概貌特征不丢失,下面介绍两种简单的图像缩小变换。基于等间隔采样的图像缩小方法这种图像缩小方法的设计思想是,通过对画面像素的均匀采样来保持所选择到的像素仍旧可以保持像素的概貌特征。该方法的具体实现步骤为:设原图为F(i,j),大小为:MN,i = 1,2,M,j =1,2,N,缩小后的图像为G(i,j),大小为k1Mk2N, (k1 = k2时为按比例缩小, klk2时为不按比例缩小。kl 1,k2 1), i = 1,2,k1M;j =1,2,k2N。 则有,(2) 图像的比例放大变换 图像在缩小操作中,是在现有的信息里如何挑选所需要的有用信息。而在图像的放大操作中,则需要对尺寸放大后所多出来的空格填入适当的像素值,这是信息的估计问题,所以较图像的缩小要难一些。由于图像的相邻像素之间的相关性很强,可以利用这个相关性来实现图像的放大。与图像缩小相同,按比例放大不会引起图像的畸变,而不按比例放大则会产生图像的畸变,图像放大一般采用最近邻域法和线性插值法。(1)最近邻域法一般地,按比例将原图像放大k倍时,如果按照最近邻域法则需要将一个像素值添在新图像的kk的子块中. (2)线性插值法为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率, 由四个邻域的像素灰度值进行线性插值. 以下是MATLAB代码实现:%图像平移变换I = imread(iron.jpg);J = double(I);H = size(I);I_moveresult = zeros(H);%I_moveresult = zeros(H)+255后背景变成了白色的x_move = 50;y_move = 50;I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3) = J(1:H(1)-x_move,1:H(2)-x_move,1:H(3);figure,imshow(I);figure,imshow(mat2gray(I_moveresult);%图像镜像变换I = imread(iron.jpg);J = double(I);H = size(I);R_vertical= zeros(H);R_vertical(1:H(1),1:H(2),1:H(3) = J(H(1):-1:1,1:H(2),1:H(3);%垂直变换figure,imshow(I);figure,imshow(mat2gray(R_vertical);%figure,imshow(uint8(R_vertical);也可以R_horizon = zeros(H);for i=1:H(1) for j=1:H(2) R_horizon(i,j,1:H(3)= J(i,H(2)+1-j,1:H(3); endend%R_horizon(1:H(1),1:H(2),1:H(3) = J(1:H(1),H(2):-1:1,1:H(3);%水平变换figure,imshow(I);figure,imshow(mat2gray(R_horizon);R_duijiao = zeros(H);R_duijiao(1:H(1),1:H(2),1:H(3) = J(H(1):-1:1,H(2):-1:1,1:H(3);%对角变换figure,imshow(I);figure,imshow(mat2gray(R_duijiao);%图像旋转变换I = imread(image.jpg);%J = double(I);R_rot1 = imrotate(I,-5);%顺时针旋转5度figure,imshow(I);figure,imshow(R_rot1);R_rot2 = imrotate(I,-5,bicubic);%双三次插值%R_rot2 = imrotate(I,-5,bilinear);双线性插值%R_rot2 = imrotate(I,-5,nearest);最近邻域插值,nearest是默认的figure,imshow(I);figure,imshow(R_rot2);R_rot3 = imrotate(I,-5,bilinear,crop);%crop使得转换后的图像和原图像一样大%R_rot3 = imrotate(I,-5,bilinear,loose);%loose使得转换后的图像比原图像大%loose是默认的figure,imshow(I);figure,imshow(R_rot3);%R_rot1 = imrotate(J,-5);%顺时针旋转5度%subplot(2,2,3),imshow(I);%subplot(2,2,4),imshow(mat2gray(R_rot1);%图像缩放变换I = imread(image.jpg);I_resize1 = imresize(I,2);figure,imshow(I);figure,imshow(I_resize1);I_resize1 =imresize(I,0.2, nearest);figure,imshow(I);figure,imshow(I_resize1);%Shrink by factor of two using nearest-neighbor %interpolation. (This is the fastest method, but it has the lowest quality.)%图像错切变换I = imread(image.jpg);J = double(I);H = size(J);B

温馨提示

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

评论

0/150

提交评论