三维图像投影变换——平行投影

(2)平行投影

【太阳光线产生的投影为平行投影】

如果把透视【投影的中心】移至【无穷远处】,则各【投影线】成为【相互平行】的直线,这种投影法称为平行投影。

平行投影可以根据投影方向与投影面的夹角分成两类:正投影和斜投影

1>正投影
根据投影面与坐标轴的【夹角】又可分为:三视图和正轴侧图
当投影面与某一坐标轴【垂直】时,得到的投影为三视图,投影方向和这个坐标轴的方向一致;否则得到的投影为正轴侧图。

『1』.三视图

1.主视图——>XOZ面(也称为V面)为投影面

由投影变换前后三维物体上点到主视图点的关系,变换矩阵为:

由三维物体到主视图的投影变换矩阵表示为:
[x‘ y‘ z‘ 1]=[x y z 1]?Tv=[x 0 z 1]

2.侧视图——>YOZ面(也称为W面)为投影面

由投影变换前后三维物体上点到侧视图点的关系,变换矩阵为:

为使侧视图与主视图都画在一个平面内,就要使W面绕Z轴正转90°,即应有一个旋转变换,其变换矩阵为:

为使主视图和侧视图有一定的间距,还要使W面沿负X方向平移一段距离-Xo,其变换矩阵为:


——>俯视图的投影变换矩阵为:


3.俯视图——>XOY面(也称为H面)为投影面

由投影变换前后三维物体上点到俯视图点的关系,变换矩阵为:

由三维物体到主视图的投影变换矩阵表示为:
[x‘ y‘ z‘ 1]=[x y z 1]?Th=[x y 0 1]

为使俯视图与主视图都画在一个平面内,就要使H面绕X轴顺时针转90°,即应有一个旋转变换,其变换矩阵为:

为使主视图和俯视图有一定的间距,还要使H面沿Z方向平移一段距离-Zo,其变换矩阵为:


——>俯视图的投影变换矩阵为:


【三视图的计算】
a.确定三维物体上【各点】的位置坐标;
b.引入齐次坐标,求出所做变换相应的【变换矩阵】;
c.将所作变换用矩阵表示,通过【运算】求得三维物体上各点经变换后的点的坐标值;
d.由变换后得到的二维点【绘出】三维物体投影后的三视图。

【特点】
物体的一个坐标面平行于投影面,其投影能反映形体的实际尺寸。
【不足之处】
一种三视图上只有物体一个面的投影,所以三视图难以形象地表示出形体的三维性质,只有将主、侧、俯三个视图放在一起,才能综合出物体的空间形状。

『2』.正轴测图

当投影面与【三个坐标轴】之间的夹角都【相等】时为等轴测
当投影面与【两个坐标轴】之间的夹角都【相等】时为正二测
当投影面与【三个坐标轴】之间的夹角都【不相等】时为正三测

空间物体的正轴测图是以V面(XOZ面)为轴测投影面,先将物体绕Z轴转Y角,

接着绕X轴转-α角,最后向V面投影,变换矩阵为:T=Tz?Tx?Tv

【三视图与轴测图比较】

2>斜投影

【平行投影特点】
平行投影保持物体的【有关比例不变】;
物体的各个面的【精确视图】由平行投影而得;
没有给出三维物体外表的真实性表示。
【轴测投影图】是用【平行投影法】形成的,【视点在无穷远处】。

【三维图形变换小结】


根据T3D在变换中所起的具体作用,进一步可将T3D分成四个矩阵,即:

平面几何投影的分类:

原文地址:https://www.cnblogs.com/Penglimei/p/9750439.html

时间: 2024-08-03 16:17:16

三维图像投影变换——平行投影的相关文章

三维图像技术与OpenGL基础理论

英文原文:3D Graphics with OpenGL Basic Theory 中文译文:三维图像技术与OpenGL基础理论 1. 计算机图像硬件 1.1 GPU(图像处理单元) 如今,计算机拥有用来专门做图像处理显示的GPU模块,拥有独立的图像处理储存(显存). 1.2 像素和画面 任何图像显示都是基于栅格的格式.一个栅格既是一张二维的像素直角坐标网.像素具有两个属性:颜色和位置.颜色通常使用RGB(红绿蓝)来表示,典型的有用8位或者24位二进制位(真彩色)表示一种颜色.位置则用坐标(x,

OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成

首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--OpenGL ES的基本用法.绘制流程与着色器编译>中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项.本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实.首先,物体有各种颜色

matlab画三维图像

当我们学习surface命令时,已经看到了三维作图的一些端倪.在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像. 首先,我们用z=cos(x)sin(y)在-2pi ≤x,y≤ 2pi内的图像来看看: [x,y] = meshgrid(-2*pi:0.1:2*pi);z = cos(x).*sin(y);mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z') 显示图像如下: 同样用mesh命令产生z = ye-(x2+y2)的三维图像:

python如何画三维图像?

python三维图像输出的代码如下所示:#画3D函数图像输出from mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cmimport matplotlib.pyplot as pltimport numpy as npimport mpl_toolkits.mplot3dfigure=plt.figure()#ax = Axes3D(figure)ax=figure.gca(projection="3d")x1=np.

四、如何通过CT三维图像得到DRR

一.介绍 获取DRR图像是医疗图像配准里面的一个重要的前置步骤. 在2D/3D的配准流程里面,需要首先通过CT三维图像,能够获取任意位置的DRR图像,然后去与已经获取的X光平面图像配准. 配准过程如下(下面的描述是不准确的,我只是描述了一种情况,即基于灰度的图像配准算法的过程,并且可能会有纰漏): 1- 定义一个评价函数:即相似性测度函数,通过这个函数评价当前是否已经达到了配准的要求. 2- 不断通过调整输入参数得到不同角度下的DRR图像. 3-通过1里面的评价函数判断是否停止搜索 实际上这是一

python之画三维图像

一:利用的包:(1)构建三维对象:mpl_toolkits.mplot3d里面导入Axes3D(2)数据方面操作:numpy(3)绘图工具包:matplotlib.pyplot 二:绘图:1.绘图主要分成两种情况:(1)一种是根据函数来绘制三维图(2)一种是根据三维坐标绘制散点图 2.代码一:绘制散点图(加颜色,修饰什么的省略) import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import

狄拉克锥的三维图像

石墨烯(graphene)中的狄拉克锥(Dirac cone)图形.直接按照能级公式绘图,公式参考[1]中 energy of the electrons 公式. %matlab代码 clear; gamma0=2.8; a=2.46;%晶格常数的值 xlist=linspace(-2,2,100); ylist=linspace(-2,2,100); [kx,ky]=meshgrid(xlist,ylist); %能量与波矢kx,ky的函数关系 E=sqrt((gamma0.^2).*(1+4

openGL实现二维图形和三维图形

openGL是一个强大的底层图形库,其命令最初的时候使用C语言实现的.openGL定义了一个图形程序接口,常用于制作处理三维图像,功能强大,调用方便,在图像处理十分受欢迎. 实现图形主要使用的是openGL的一个工具包:GLUT. GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL prog

数字图像处理——图像的几何变换

数字图像处理--图像的几何变换 几何变换不改变像素值,而是改变像素所在的位置. 它包括两个独立的算法: 空间变换算法 插值算法 分类 从图像类型上 二维图像 三维图像 从三维到二维平面投影变换 从变换的性质 基本变换:平移,比例缩放,旋转,镜像,错切 复合变换 图像的平移 在同一坐标系下,设\(P_0(x_0,y_0)\) ,经过水平偏移量\(\triangle x\) ,垂直偏移量\(\triangle y\),得到平移之后的坐标: \[ \begin{cases} x = x_0 + \tr