资源预览内容
第1页 / 共169页
第2页 / 共169页
第3页 / 共169页
第4页 / 共169页
第5页 / 共169页
第6页 / 共169页
第7页 / 共169页
第8页 / 共169页
第9页 / 共169页
第10页 / 共169页
亲,该文档总共169页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 绘图与图形处理登录窗体顶端搜索: 窗体底端czks wiki图像的空间变换 首页 论坛 Blog 贡献 最新改动 查找网页 帮助目录 图像的空间变换 编辑 备注 信息 附件 窗体顶端窗体底端空间几何变换将(w,z)坐标系上的图像变换为(x,y)坐标系上的图像,可以表示为: (x,y) = T(w,z) 比如: (x,y) = T(w,z) = (w/2, z/2) 仿射变换仿射变换是一种常用矩阵变换,它可以表示成矩阵的形式: 在matlab里面实现 wz = 3 4 1;T = 2 0 0; 0 3 0; 0 0 1;xy = wz * T;wz = xy * inv(T);为了避免归一化参数,我们可以借助maketform函数: T = 2 0 0; 0 3 0; 0 0 1;tform = maketform(affine, T);wz = 1 2; 3 4;xy = tformfwd(wz, tform);wz = tforminv(xy, tform);我们可以用一个栅格图像来形象的表示这些变换的效果: 这些变换使用的变换矩阵分别是: 对图像应用空间变换有两种方法:正向映射和反向映射 反向映射的过程是:对每一个输出像素,计算它在输入图像上的位置,根据输入图像上该位置附近的像素值决定输出像素的值。 在matlab中,简单的变换可以直接用单个函数实现。图像缩放使用: g = imresize(f, scale);g = imresize(f, ROW COL);图像旋转使用: g = imrotate(f, angle);图像剪切使用: g = imcrop(f, X, Y, WIDTH, HEIGHT);在matlab中使用imtransform实现图像的空间变换。语法是g = imtransform(f, tform, interp);其中,interp可以是nearest,bilinear或者bicubic。 比如: f = chekerboard(50);s = 0.8;theta = pi/6;T = s*cos(theta) s*sin(theta) 0;-s*sin(theta) s*cos(theta) 0;0 0 1;tform = maketform(affine, T);g = imtransform(f, tform);双线性滤波: 图像配准根据两幅图像,算出一个变换参数,使得一幅图像经过这样的变换后和另一图像接近 图像的空间变换 (2008-04-20 22:42:58由czk编辑) 编辑 备注 信息 附件 窗体顶端窗体底端 MoinMoin Powered Python Powered GPL licensed Valid HTML 4.01 czk.8866.org | czk.3322.org | Copyright (c) 2006 czk. 浙ICP备06000584号X Warning!Youre using Internet Explorer 6, thats a big security risk! Upgrade or download a better, faster & safer browser: Firefox, Chrome or Safari.第7章 绘图与图形处理人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致。下面我们分别介绍图形的命令。7.1 二维图形7.1.1 基本平面图形命令命令1 plot功能 线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axes LineStyleOrder property)定义的线型,以区别不同的线条。用法 plot(X,Y) 当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=x(i),Y=y(i),则plot(X,Y)先描出点(x(i),y(i),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。若X,Y均为同维同型实数矩阵,X = X(i),Y = Y(i),其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。plot(Y) 若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y 的行数为n,则plot(Y)等价于plot(X,Y)其中x=1;2;n;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。plot(X1,Y1,X2,Y2,),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出。plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2) 将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。在plot 命令中我们可以混合使用三参数和二参数的形式:plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3)plot(,PropertyName,PropertyValue,) 对所有的用plot生成的line图形对象中指定的属性进行恰当的设置。h = plot() 返回line图形对象句柄的一列向量,一线条对应一句柄值。说明 参数LineSpec功能 定义线的属性。Maltab允许用户对线条定义如下的特性:1线型表7-1定义符-:-.线型实线(缺省值)划线点线点划线2线条宽度指定线条的宽度,取值为整数(单位为像素点)3颜色表7-2定义符R(red)G(green)b(blue)c(cyan)颜色红色绿色兰色青色定义符M(magenta)y(yellow)k(black)w(white)颜色品红黄色黑色白色4标记类型表7-3定义符+o(字母)*.x标记类型加号小圆圈星号实点交叉号定义符dvt = 0:pi/20:2*pi; plot(t,t.*cos(t),-.r*) hold on plot(exp(t/100).*sin(t-pi/2),-mo) plot(sin(t-pi),:bs) hold off图形结果为图7-1。例7-2 plot(t,sin(2*t),-mo, LineWidth,2,MarkerEdgeColor,k, MarkerFaceColor,.49 1 .63,MarkerSize,12)图形结果为图7-2。图7-1 二维曲线图 图7-2 二维图形的绘制命令2 fplot 功能 在指定的范围limits内画出一元函数y=f(x)的图形。其中向量x的分量分布在指定的范围内,y是与x同型的向量,对应的分量有函数关系:y(i)=f(x(i)。若对应于x的值,y返回多个值,则y是一个矩阵,其中每列对应一个f(x)。例如,f(x)返回向量f1(x),f2(x),f3(x),输入参量x=x1;x2;x3,则函数f(x)返回矩阵 f1(x1) f2(x1) f3(x1) f1(x2) f2(x2) f3(x2) f1(x3) f2(x3) f3(x3)注意一点的是,函数function必须是一个m-文件函数或者是一个包含变量x,且能用函数eval计算的字符串。例如:sin(x)*exp(2*x),sin(x),cos(x),hump(x)。用法 fplot(function,limits) 在指定的范围limits内画出函数名为function的一元函数图形。其中limits是一个指定x-轴范围的向量xmin xmax或者是x轴和y轴的范围的向量xmin xmax ymin ymax。 fplot(function,limits,LineSpec) 用指定的线型LineSpec画出函数function。 fplot(function,limits,tol) 用相对误差值为tol画出函数function。相对误差的缺省值为2e-3。 fplot(function,limits,tol,LineSpec) 用指定的相对误差值tol和指定的线型LineSpec画出函数function的图形。 fplot(function,limits,n) 当n=1,则至少画出n+1个点(即至少把范围limits分成n个小区间),最大步长不超过(xmax-xmin)/n。 fplot(f
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号