资源描述
图形图像习题课,赵振刚gavin,2010.12.27,内容,3D观察流水线三维对象表示及样条曲线3D模型及数据结构直方图及均衡化三次作业,Topic1:3D观察变换,定义:让计算机已知模型形状(模型坐标)、观察者位置(观察坐标)、投影方式(观察方式)、显示器窗口大小的情况下,在显示器屏幕预定位置呈现观察者眼中模型样子的过程,三个计算,(1)MC、WC、VC齐次坐标运算(2)M从三维到二维投影,即平面化(3)视点变换,即旋转、裁剪平面化后的图形,获得最终结果,MCWC齐次坐标运算,齐次坐标第一列为MC中x轴在WC中向量表示;第二列为MC中y轴在WC中向量表示;第三列为MC中原点在WC中坐标;,模型坐标系中的坐标为(1,1),世界坐标系中的坐标为(3,4),MCWC齐次坐标运算,将齐次矩阵作为变换矩阵,乘以MC中坐标,得WC中坐标,WCVC齐次坐标运算,VC对世界标系WC的齐次矩阵及其逆为,观察坐标系中的坐标为(-2,-2),世界坐标到观察坐标,回顾理论课内容,三维平移,回顾理论课内容,三维旋转,绕x轴,绕y轴,绕z轴,回顾理论课内容,三维缩放,计算,作业5.55.6,M从三维到二维投影,即平面化,投影变换(ProjectionTransformation)中分为两个部分,第一个部分是将上个阶段得到的坐标转换为平面坐标,第二个部分是将转换后的平面坐标在进行归一化并进行剪裁。投影一般分为:正交投影、透视投影,投影变换在模型视点变换之后应用于物体的顶点之上的,实际上定义了观察区域,并建立了裁剪平面。,正交投影的数学分析,对于三维空间中的坐标点和一个二维平面,要在对应的平面上投影,只需将非该平面上的点的坐标分量改为该平面上的坐标值,其余坐标不变openGL中,设置正交投影可以使用函数glOrtho(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublezNear,GLdoublezFar),六个参数对应投影空间六个平面,透视投影的数学分析,gluPerspective(GLdoublefovy,GLdoubleaspect,GLdoublezNear,GLdoublezFar);生成投影矩阵,视口变换,比如上个阶段中得到了一个顶点的坐标为(0,0,0.5,1),根据这个坐标,该顶点位于投影平面的正中间。如果将该点映射到大小为50*50的窗口上时,那么它应该位于屏幕的中间,坐标为(25,25,0.5,1)。,glViewport(width/2,0,width/2,height/2),3D观察的形象描述(1),视点变换(对准场景),模型变换(放置模型),相反过程,3D观察的形象描述(2),投影变换(指定视景形状),视口变换(指定在显示平面中位置和大小),Topic2:3D模型及数据结构,三维数据源:拍摄好的影像、设计好的图纸或者物体本身获取流程:工程设计图纸-采集数据标注-利用AutoCAD、3Dmax等软件建模-PC存储文件模型文件转换方法:多边形网格,一个问题,三维模型如何进行网格剖分?问题实质:曲面离散化问题关键:最优点搜索快速、连续已有方法:映射法:曲面-平面-曲面推进阵面法:插值逼近Delaunay三角化方法:离散截取-截面内点-四面体-内外子集分割-公共面,规则曲面例子,平面与曲面网格示意,有限元网格逼近,一个问题,规则曲面可以由多面体、曲面、二次曲面、超二次曲面来生成,那么不规则曲面的数据集如何生成?样条表示,样条表示,样条是通过一组指定点集而生成平滑曲线的柔性带。样条曲线原指使用这种方式绘制的曲线。数学上使用分段三次多项式来描述这种曲线,其中各曲线段的连接处有连续的一次和二次导数.在计算机图形学中,样条曲线指由多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续性条件。样条曲面可以使用两组正交样条曲线进行描述。样条用于设计曲线和曲面形状,将绘制的图形数字化以及设置指定场景中对象的动画路径或照相机的位置。,样条曲线的参数表示,参数表示x=x(t)y=y(t)z=z(t)其中:a=t=b,(a)5个控制点的插值曲线(b)5个控制点的逼近曲线,三次样条插值方法,给出一组控制点,通过每个控制点的分段三次多项式曲线拟合输入点,可以得到立方插值样条。假设有n+1个控制点,那么坐标分别为:Pk=(xk,yk,zk)k=0,1,2,n可以使用下列方程组来描述拟合每对控制点的参数三次多项式:x(u)=axu3+bxu2+cxu+dxy(u)=ayu3+byu2+cyu+dyz(u)=azu3+bzu2+czu+dz(0=u运行程序cardinal,另一个问题,绘制好后的曲线、曲面,如何离散化,以及离散化后的点坐标如何保存?三角形、四边形离散,取其顶点,3Dmodelformat,3DmaxASE(ASCII)file,文件头:物体的总顶点数及该物体的总面数,顶点表:顶点序号及其对应的坐标值,面表:基本三角形面的序号、三角形各个顶点在顶点表中的序号和三角形各边的可见性,Scenefileexample,顶点顺序联结按右手系确定法线正方向;每两个三角形单元都是通过它们共有的一条边连接,Datastructureofmap,编程实例,综合设计实验山地地形读取,Koch分形,(X1,y1),(X2,y2),(X1,y1),(X2,y2),(X3,y3),(X4,y4),(X5,y5),Koch分形关键程序代码,Topic3:面向对象编程和VC+,面向过程思想方法“结构化程序设计”,将程序设计抽象成三种基本程序机构:顺序、选择、重复结构;自顶向下、逐步求精、模块化程序设计原则面向对象思想方法现实问题空间与软件系统解空间的近似和直接模拟,将客观世界的对象映射到面向对象系统的解空间,面向对象思想方法的核心概念,类和实例封装和消息继承和派生联合和聚集,面向对象开发方法,面向对象分析(OOA)提取系统需求,确定对象属性和关系面向对象设计(OOD)采用问题域模型构造应用程序。面向对象的实现(OOS),VC+,文件组织.dsw.dsp.opt.clw.sln,资源类,文件视图,函数接口,Classproperties,Functioninterface,Topic4:直方图均衡化,操作对象像素灰度值、分布及其相关性直方图均衡化,为什么是累加和?,累加和?,连续均匀分布的概率密度函数,1,0,r,Sr,由此概率密度函数可得离散分布时,实验三代码,等级化,累加和,原始直方图,习题3.4,低阶比特置零,高阶比特置零,一幅图像的高阶比特面会携带大量的可见相关细节,低阶比特面则分布着一些细小的细节(通常是感觉不到的)。,
展开阅读全文