《图像几何变换matlab.ppt》由会员分享,可在线阅读,更多相关《图像几何变换matlab.ppt(50页珍藏版)》请在三一办公上搜索。
1、图像的几何变换,一、MATLAB中的图像基本操作,关于图像的函数和命令(1),F=imread(rice.bmp);%读工作区下的rice图片,将其灰度值存入F矩阵中。F=imread(D:rice.bmp);%D盘下的rice图片,将 其灰度值存入F矩阵中。whos F%whos命令查看图片变量F的信息G=rgb2gray(F);%将F对应的RGB彩色图像数据 转换为灰度图像数据,存入G中,关于图像的函数和命令(2),imwrite(G,rice1.bmp);%将图像数据G写入文件 rice1中,存为新图片。imshow(F);%显示图像数据F对应的图像figure;%创建新的图像窗口sub
2、plot(2,2,1);%将当前图像窗口划分为2行2列,即 4个子窗口,要显示的内容在第一个 子窗口中显示,例 如:,关于图像的函数和命令(3),im2double(F);%将图象数组F转换成double精度类型im2uint8(F);%将图象数组F转换成unit8类型im2uint16(F);%将图象数组F转换成unit16类型,二、图像几何变换,由于拍摄图像的角度、距离等原因,可能 会需要对图像进行适当的几何变换。几何变换又称为空间变换,是将一幅图像 中的坐标位置映射到另外一幅图像中的新坐标位置。它不改变图像的像素值,只是在图像平面上进行像素的重新安排。,三、解决几何变换问题的思路,一般要
3、考虑原图像中的某个像素点的坐标(x0,y0)和此像素点映射到新图像中的新坐标(x1,y1)之间的关系。可由下式描述:x1=f1(x0,y0);y1=f2(x0,y0);,主要内容,2.1 基本知识2.2 图像平移2.3 图像镜像2.4 图像转置2.5 图像缩放2.6 图像旋转,图像平移,1.平移的变换公式,(x0,y0)是原图像上的点,图像水平平移量为a,垂直平移量为b,如图所示。平移后的新坐标点为:x1=x0+a;y1=y0+b;,2.程序实现:,3.MATLAB中实现平移的函数,主要内容,2.1 基本知识2.2 图像平移2.3 图像镜像2.4 图像转置2.5 图像缩放2.6 图像旋转,图像
4、镜像,水平镜像:图像的左半部分和右半部分以图像竖直中轴线为中心轴进行对换。,垂直镜像:图像的上半部分和下半部分以图像水平中轴线为中心轴进行对换。,1.水平镜像的变换公式,(x0,y0)是原图像上的点,中心轴如图所示,水平镜像对应的新坐标点为:x1=M-x0;y1=y0;,2.垂直镜像的变换公式,(x0,y0)是原图像上的点,中心轴如图所示,垂直镜像对应的新坐标点为:x1=x0;y1=N-y0;,3.程序实现:,4.MATLAB中实现镜像的函数,水平镜像和垂直镜像的变换矩阵:,主要内容,2.1 基本知识2.2 图像平移2.3 图像镜像2.4 图像转置2.5 图像缩放2.6 图像旋转,图像转置,1
5、、图像转置的公式,图像转置即为行列互换,(x0,y0)是原图像上的点,转置后对应的新坐标点为:x1=y0;y1=x0;注意:图像尺寸有可能改变。,2.程序实现:,3.MATLAB中实现图像转置的函数:,图像转置的变换矩阵:,主要内容,2.1 基本知识2.2 图像平移2.3 图像镜像2.4 图像转置2.5 图像缩放2.6 图像旋转,图像缩放,图像缩放:指图像大小按照指定的比率放大或者缩小。图像尺寸会发生变化。,放大到同样尺寸:,1、图像缩放的公式,图像转置即为行列互换,(x0,y0)是原图像上的点,转置后对应的新坐标点为:x1=a*x0;y1=b*y0;注意:图像尺寸有可能改变。,2.程序实现:
6、,3.MATLAB中实现图像缩放的函数:,图像转置的变换矩阵:,主要内容,2.1 基本知识2.2 图像平移2.3 图像镜像2.4 图像转置2.5 图像缩放2.6 图像旋转,图像旋转,以原点为中心的旋转,以图像中心为中心的旋转,1、图像以原点为中心点的旋转公式,设(x0,y0)是原图像上的点,L为(x0,y0)到原点的距离。有:,sin(b)=x0/L cos(b)=y0/L sin(a+b)=x1/L=sin(a)cos(b)+cos(a)sin(b)cos(a+b)=y1/L=cos(a)cos(b)-sin(a)sin(b)旋转后对应的新坐标点为:x1=y0sin(a)+x0cos(a);
7、y1=y0cos(a)-x0sin(a);,2.程序实现:,3、图像以图像中心为中心点的旋转公式,(x0,y0)是原图像上的点,L为(x0,y0)到原点的距离。有:sin(b)=(x0-M/2)/L cos(b)=(y0-N/2)/L sin(a+b)=(x1-M/2)/L=sin(a)cos(b)+cos(a)sin(b)cos(a+b)=(y1-N/2)/L=cos(a)cos(b)-sin(a)sin(b)旋转后对应的新坐标点为:x1=(y0-N/2)sin(a)+(x0-M/2)cos(a)+M/2;y1=(y0-N/2)cos(a)-(x0-M/2)sin(a)+N/2;,y,x,x0,y0,x1,y1,旋转,a,L,b,L,M/2,N/2,4.程序实现:,5.MATLAB中实现图像旋转的函数:,本章小结,1、掌握几何变换前后像素点之间的映射关系,学会使用MATLAB语言实现常用的几何变换功能。2、了解MATLAB中关于几何变换的一些函数,学会使用它们处理图片。,作 业,1.请找一幅待处理图片,若为RGB彩图 转换为灰度图,uint8类型的。2.自己编写MATLAB程序,实现图像平移、图像水平镜像、图像转置、图像缩放、图像旋转的功能。3.要求:独立完成的同学将.m源文件和图片发给我。,Thanks,