Duanxx的图像处理学习:图像变换 三维变换及其齐次坐标表示

合集下载

三维视觉中-坐标变换之---齐次坐标的引入

三维视觉中-坐标变换之---齐次坐标的引入
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
三维视觉中 -坐标变换在实际中,我们的向量(流形)是不变的,但是可以由多个坐标,当同一个流形在不同坐标系中变换时,通常是先旋 转后平移,比如,三维坐标的变换: 从有三个坐标,a,b,c,我们知道坐标a变换到坐标b的变换方程是:b = R1 * a + t1,从坐标b变换到c的变换方程是: c = R2 * b + t2. 这时候,坐标a变换到坐标c的方程是:
c = R2 * b + t2 = R2 * (R1 * a + t1) + t2 是不是很丑? 而且,我们“通常”的解决方式是啥? 是矩阵运算,因此,齐次坐标“ 应运而生”:
这一样,C = T2 * T1 * a^ 了,是不是很简洁好看,缺点是,维度要增加一维

4-图像变换

4-图像变换

数字图像处理
图像的水平镜像
10
示例:
1 1 2 3 2 3 1 2 3 -1 -2 -3 3 2 1
N 3
1 2
3
数字图像处理
水平镜像示例
11
数字图像处理
图像的垂直镜像
垂直镜像计算公式如下(图像大小为M*N)
x ' x (垂直镜像) y' y

12

因为表示图像的矩阵坐标不能为负,因此需要在进 行镜像计算之后,再进行坐标的平移。
图像的加减运算
对图像进行加减运算,就是将图像对应的存储矩形点列 上的灰度值进行加减运算。 图像相加可以将一幅图像的内容加到另一幅图像上,可 以实现二次曝光,也可以对同一个场景的多幅图像求平均 值,这样可以降低加性随机噪声;还可以用于图片的衔接 和融合,如数字水印。 图像相减可以用于运动检测,是对运动物体定位的一种 常用方法,通常使用连续捕获到的两到三张图象,通过像 素相减求得图像间的差异,为后续识别和定位打下基础。 或去除图像中不需要的加性图案,如电视的蓝屏技术。
30
zw
数字图像处理
图像的仿射变换—— 齐次坐标的意义

31
提供了用阶数统一的矩阵运算把空间上的一个点 从一个坐标系变换到另一坐标系的有效方法。 便于表示无穷远点:(xw, yw, w),令w等于0 变换具有统一表示形式的优点 便于变换合成 便于硬件实现
数字图像处理
图像的仿射变换—— 通式
x' x x 平移: y ' y y
数字图像处理
图像的仿射变换—— 齐次坐标的特点
w 可以取不同值,同一点齐次坐标不唯一。 如普通坐标系的点(2,3)的齐次坐标可以是:

齐次坐标表示法在图形变换中的作用

齐次坐标表示法在图形变换中的作用

齐次坐标表示法在图形变换中的作用
齐次坐标表示法(HomogeneousCoordinatesRepresentation,简称HCR)是将三维坐标投影到平面的一种方法,它使用数学方法将三维坐标表示成(x,y,z)变换成(x/z,y/z,1)的形式,也可以称为齐次坐标。

齐次坐标表示法被广泛应用于计算机图形学中,用于实现图形变换,如旋转、平移、缩放等。

齐次坐标表示法通过将三维坐标映射到一个四元素向量,使得变换变得容易。

例如,使用位置矢量(x,y,z)表示空间中的点时,
可以使用齐次坐标表示法将它表示为(x,y,z,1)的形式。

使用这种形式可以用一个4×4的矩阵将这个点移动到空间中的另一个位置,而不需要重新计算其坐标(也就是说,只需要替换矩阵的某些元素即可)。

在图形变换中,旋转和平移是最基本的变换,而使用齐次坐标表示法可以简单、有效的实现它们。

首先,在没有使用齐次坐标表示法前,要实现旋转,就需要按照旋转轴和角度来计算出旋转后点的新坐标,而使用齐次坐标表示法则只需要通过一个4x4的旋转矩阵来计算出旋转后点的新坐标,这种方式实现旋转更加简单、方便。

同样,在实现平移时,也可以使用齐次坐标表示法来简化计算,即只需要改变矩阵的某些元素来实现平移,而无需重新计算出点的新坐标。

此外,使用齐次坐标表示法还可以实现缩放,即通过改变矩阵中某些元素来实现缩放,从而实现图形大小的变换。

总之,齐次坐标表示法是计算机图形学中的一种非常有用的方法,
它使得图形变换变得简单、快捷,使得计算机图形学取得了很大的进步,受到了广泛的应用。

图像处理三维图形变换解读

图像处理三维图形变换解读
全局坐标系 所有物体组成一个场景,场景坐标系称
为世界坐标系 所有物体必须变换至该坐标系,以确定
彼此之间的相对空间位置 将物体放至场景内等价于定义一个从物
体局部坐标系至世界坐标系的变换矩阵 场景需要定义光照
图形流水线中的照相机坐标系

照相机坐标系统决定照相机参数和可见 域
必须包括
◦ 视点位置 ◦ 视线
M3
堆栈
glPopMatrix (): 将顶部矩阵删除,并将所有 其他矩阵往上移动一位。
矩阵堆栈的好处:允许一系列位置(代表
了坐标系统)保留下来,并在需要的时候使
用它们。
Transform demo
矩阵阵列
建模变换:
sin θ
cos θ
0
R s0in θ 10 y 0
0 1
sin θ
0
cos θ
“Z 正对面”
任意三维旋转
可以由轴平行旋转复合而得
R R zˆ R yˆ R xˆ
可以用欧拉角表示(非唯一) 也可以用四元数表示
R rot(x, y, z)
任意三维旋转
R R zˆ R yˆ R xˆ
从世界坐标系到屏幕坐标系
将物体从世界坐标系变换至屏幕坐标系, 可以看成是:将物体首先作相机变换, 再作透视变换:
一般还需要一个视区(视口)变换 (viewport transformation)
视区变换
将视域归一化 视域与物体求交,求交后的物体投影,并按
照相应的视见区域大小[xmin,xmax]、 [ymin,ymax]、 [zmin,zmax]进行缩放
一系列变换的合成可通过矩阵的嵌套完成
Q Tn (Tn1...(T2 (T1 P))...) (TnTn1...T3T2T1) P T P T Tn Tn1 ...T3 T2 T1

计算机图形学2010_06三维图形变换

计算机图形学2010_06三维图形变换

第六章 三维图形变换第一节 三维图形变换基础一、三维坐标系xyzxyz右手坐标系左手坐标系三维图形学中习惯上通常是采用右手坐标系。

xy 平面对应于视平面,z 轴垂直于视平面,指向视平面之外。

二、三维齐次坐标及变换矩阵三维图形变换也是基于矩阵运算进行。

矩阵运算的维数被扩展为四维。

三维坐标点采用4元齐次坐标表示:(x , y , z , 1),三维坐标与三维齐次坐标的相互转换如下:三维坐标(x , y ,z )——齐次坐标(x , y ,z , 1) 齐次坐标(x , y ,z , h )——二维坐标(x /h , y /h ,z /h ) 变换矩阵则为4X4的矩阵:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡s nm kr j i h q f e d p c b a 其中:平移变换第二节 三维几何变换一、三维基本变换 1. 平移变换⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1010000100001nmk T )1,,,()1,,,(n z m y k x T z y x +++=⋅2. 比例变换)1,,,()1,,,(1000000000000jz ey ax T z y x j e a T =⋅⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡= 3. 旋转变换三维的基本旋转变换分为三种,即绕三个坐标轴的旋转变换。

(1)绕z 轴旋转γ角旋转后z 值不变,x,y 值将发生改变,x,y 值的计算公式与平面旋转相同,即:zz y x y y x x ='+='-='γγγγcos sin sin cos 则变换矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=1000010000cos sin 00sin cos γγγγT 有:)1,1,cos sin ,sin cos ()1,,,(γγγγy x y x z y x +-=T(2)绕x 轴旋转α角则旋转后x 的坐标值不变,y 和z 的坐标值将改变,相当于在yz 平面上绕平面原点进行旋转变换。

平面转转变换的公式为:ααααcos sin sin cos y x y y x x +='-='对应而来,这里y 对应于x ,z 对应y ,有:ααααcos sin sin cos z y z z y y +='-='则变换矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=10000cos sin 00sin cos 00001ααααT )1,cos sin ,sin cos ,()1,,,(ααααz y z y x z y x +-=T(3)绕y 轴旋转β角这时,z 对应于x ,x 对应于y 。

三维齐次坐标变换

三维齐次坐标变换

三维齐次坐标变换三维齐次坐标变换在计算机图形学和计算机视觉领域中具有重要的应用。

它是一种表示和变换三维空间中物体位置和姿态的方法。

本文将简要介绍三维齐次坐标变换的概念、原理和应用,以及其在计算机图形学和计算机视觉中的具体应用案例。

一、概述三维齐次坐标变换是一种将三维物体在三维空间中的位置和姿态进行表示和变换的方法。

它通过引入一个额外的尺度变量来将三维几何运算转换为矩阵乘法运算,从而简化了三维计算的表示和运算。

三维齐次坐标变换以齐次坐标的形式表示三维点和变换矩阵,通过矩阵乘法来进行坐标变换和几何运算。

二、三维齐次坐标表示在三维齐次坐标中,一个三维点可以表示为一个四维向量,即[x, y, z, w],其中w为尺度变量。

三维点的齐次坐标表示可以通过除以w得到其三维坐标表示[x/w, y/w, z/w]。

同样,一个三维向量可以表示为一个四维向量,其中w为0。

三、齐次坐标变换矩阵齐次坐标变换可以表示为一个4x4的变换矩阵,其中包括平移、旋转、缩放等变换操作。

变换矩阵可以通过组合多个变换操作得到,从而实现复杂的几何变换。

常用的齐次坐标变换包括平移变换、缩放变换、旋转变换等。

四、三维齐次坐标变换的应用三维齐次坐标变换在计算机图形学和计算机视觉中有广泛的应用。

其中一个主要应用是计算机图形学中的三维物体变换和渲染。

通过齐次坐标变换,可以对三维物体进行平移、旋转、缩放等操作,从而实现物体在三维空间中的位置和姿态的变换。

另一个主要应用是计算机视觉中的三维重建和相机校准。

通过齐次坐标变换,可以将多个相机坐标系对齐,实现三维重建和相机参数校准。

五、应用案例1. 计算机图形学中的三维物体变换:在三维游戏开发中,可以通过齐次坐标变换来实现角色的平移、旋转、缩放等操作,从而实现角色在游戏场景中的自由移动和姿态变化。

2. 计算机视觉中的三维重建:在三维重建中,通过齐次坐标变换可以将多个相机拍摄的图像对齐,实现对场景中物体的三维重建和重建精度的提升。

三维坐标变换


z
2E F 2A B x
2024/9/5
z
3
H
1
G
Dy
C
1
x
图7-6 比例变换
1 y
13
(2)整体比例变换
1 0 0 0
TS
0 0
1 0
0 1
0 0
0
0
0
s
2024/9/5
14
3. 旋转变换
z
y
X
图7-7 旋转变换的角度方向
2024/9/5
15
(1)绕z轴旋转
cos sin 0 0
TRZ
sin
53
将α值代入(7-1)式得到正二测图的投影变换矩阵:
2
T
2 0
2 sin
2
cos
0 0
0 0
2
2 0
2 sin
2 0
0 0
0 1
特点分析:
2024/9/5
54
7.3.2 斜投影
斜投影图,即斜轴测图,是将三维形体向一个单 一的投影面作平行投影,但投影方向不垂直于投 影面所得到的平面图形。 常用的斜轴测图有斜等测图和斜二测图。
Y
侧视图
Y
46
3. 俯视图 三维形体向xoy面(又称H面)作垂直投影得到俯视图, (1) 投影变换 (2)使H面绕x轴负转90° (3)使H面沿z方向平移一段距离-z0
Z
z
2024/9/5
主视图
O
y
X
俯视图
7-13 三维形体及其三视图
Y
侧视图
Y
47
x
4. 侧视图 获得侧视图是将三维形体往yoz面(侧面W)作垂直投影。 (1) 侧视图的投影变换 (2)使W面绕z轴正转90° (3)使W面沿负x方向平移一段距离x0

图像处理课件04-几何变换


x0 x0 x x y0 y0 y y 1 1 1
从上式可以看出,引入附加坐标后,扩充了矩阵的第3
行,并没有使变换结果受到影响。这种用n+1维向量表示n 维向量的方法称为齐次坐标表示法。
的形式,然后乘以相
应的变换矩阵即可完成,即
1 3n
变换后的点集矩阵=变换矩阵T
× 变换前的点集矩阵
Page 16
设变换矩阵T为
a b p T c d q l m s
则上述变换可以用公式表示为
' ' ' Hx1 Hx2 Hxn x1 x2 xn ' ' ' y y y Hy Hy Hy T 2 n n 1 1 2 H H 1 1 1 H 3n 3n
比例缩小: 最简单的比例缩小是当 fx=fy=1/2时,图像被缩到 一半大小,此时缩小后图像中的 (0 , 0) 像素对应于原图像中
的(0,0)像素; (0,1)像素对应于原图像中的(0,2)像素; (1,
0)像素对应于原图像中的(2,0)像素, 依此类推。 图像缩小之后,因为承载的信息量小了,所以画布可相 应缩小。此时,只需在原图像基础上,每行隔一个像素取一 点,每隔一行进行操作,即取原图的偶(奇)数行和偶(奇) 数列构成新的图像,如图所示。如果图像按任意比例缩小, 则需要计算选择的行和列。
xi yi s
将齐次坐标
规范化后,
x0 i s y0 i s 1
xi yi 1 。

计算机图形学-第三章-变换及裁剪

第三章 变换与裁剪
内容
二维变换 三维变换 裁剪
内容
二维变换
齐次坐标表示 基本变换 其它变换
三维变换 裁剪
二维变换
通过二维变换和裁剪,将定义在二维世界 坐标系中的物体变换到以像素为单位的屏 幕坐标系中,实现二维物体的光栅显示
矢量图形、卡通动画
二维图形中常见的变换
齐次坐标表示: 基本变换:平移、旋转、放缩 其它变换:剪切、对称、复合
齐次坐标
所谓齐次坐标表示法就是由n+1维向量表示一个
n 维 向 量 。 如 n 维 向 量 (P1,P2, … ,Pn) 表 示 为
(hP1,hP2, hPn,h),其中h称为哑坐标。
齐次坐标
1、h可以取不同的值,所以同一点的齐次坐标
不是唯一的。如普通坐标系下的点(2,3)变换 为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3) 等等。
y
0
1
0
y
1 0 0 1 1
关于坐标原点的对称变换
x 1 0 0 x
y
0
1
0
y
1 0 0 1 1
关于X轴的对称变换
x 1 0 0 x
y
0
1
0
y
1 0 0 1 1
关于Y轴的对称变换
对称变换
Y (x,y) O
y=x X
(y,x)
x 0 1 0 x
Y (x',y')
(x,y)
O
X
x' 1 y'0
0 1
xyttxy
采用齐次坐标: (x, y) (x, y, 1)
x 1 0 tx x
y

计算机图形学-第三章-变换及裁剪

xh hx, yh hy, h 0
(x,y)点对应的齐次坐标为三维空间的一条 直线
xh hx
yh
hy
zh h
7
齐次坐标的作用
1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵 运算把二维、三维甚至高维空间上的一个点从一个坐 标系变换到另一坐标系的有效方法。
2. 便于表示无穷远点。
例如:(x h, y h, h),令h等于0
25
3 规格化设备坐标系 用于用户的图形是定义在用户坐标系里,
而图形的输出定义在设备坐标系里,它依赖于 基体的图形设备。由于不同的图形设备有不同 的设备坐标系,且不同设备间坐标范围也不尽 相同, 例如:分辨率为1024*768的显示器其屏幕坐标的 范围:x方向为0~1023,y方向为0~767,分辨 率为640*480的显示器,其屏幕坐标范围为:x 方向0~639,y方向0~479
y 1),则
1 0 0
P'x' y' 1 x y 1 0 1 0 x
Tx1
Ty1
1
y 1Tt1
经第二次平移变换后的坐标为P*(x* y* 1)
P * x *
y * 1 x'
y'
1
1 0
0 0 1 0
Tx
2
Ty 2
1
1 0 0 1 0 0
x y 1 0 1 0 0 1 0 x y 1 Tt1Tt2
44
关于透视投影
一点透视投影
两点透视投影
三点透视投影
45
内容
二维变换 三维变换 裁剪
二维线裁剪 二维多边形裁剪 文本裁剪 三维裁剪 关于三维变换与裁剪
46
三维变换流程图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Duanxx的图像处理学习:
图像变换三维变换及其齐次坐标表示
——Duanxx
——2014-10-15
目录
1 平移及比例变换 (2)
2 旋转变换 (2)
2.1 绕轴旋转 (2)
2.2 一般三维旋转 (3)
三维空间变换的齐次坐标表示和二维空间变换相似,仅仅是在二维的基础上再添加一个维度。

1 平移及比例变换
三维空间的平移变换为:
T=[
10
01
00
00 00
t x t y
10
t z1
]
三维空间的比例变换为:
S=[S110
0S22
00
00 00
00
S330
01
]
而相对于给定点P(t x,t y,t z)的比例变换则为:
S=[
1 0
0 1
0 0
0 0
00
−t x−t y
10
−t z1
][
S110
0S22
00
00
00
00
S330
01
][
10
01
00
00
00
t x t y
10
t z1
]=
[
S110
0 S22
0 0
0 0
00
t x(1−S11)t y(1−S22)
S330
t z(1−S33)1
]
2 旋转变换
三维空间的旋转变换为:
在旋转变换中涉及方向问题,这里采用右手坐标系(可参考《Duanxx的数学知识:右手坐标系》),相应的坐标轴的正方向向原点看过去,绕轴的逆时针方向为正方向。

假如,我们是绕x轴转θ角度,那么,x轴上的数值自然是不会改变的,所改变的只有y轴和z轴上的数值,在《Duanxx的图像处理学习:图像变换二维变换及其齐次坐标表示》的1.3中,有二维的旋转变换的证明,这里虽然增加了一个维度,但是由于绕轴旋转时,所绕的那个轴上的数据是不变的,所以,这里绕轴旋转的其次坐标表示很容易得到:
2.1 绕轴旋转
绕x轴逆时针变换为:
沿x轴看过去的坐标系为:y-z坐标系
R x=[
10
0cosθ
00
sinθ0 0−sinθ
00
cosθ0
01
]
绕y轴逆时针变换为:
这里需要注意一下,在绕y轴旋转时,沿y轴看过去的坐标系为:z-x坐标系,和另外两个坐标系反了。

R y=[cosθ0
01
−sinθ0
00 sinθ0
00
cosθ0
01
]
绕z轴逆时针变换为:
沿z轴看过去的坐标系为:x-y坐标系
R z=[
00
0cosθ
00
sinθ0 0−sinθ
00
cosθ0
01
]
同理,很容易可以知道,绕x、y、z轴的顺时针变换为:绕x轴顺时针变换为:
R x=[10
0cosθ
00
−sinθ0 0sinθ
00
cosθ0
01
]
绕y轴顺时针变换为:
R y=[
cosθ0
01
sinθ0
00−sinθ0
00
cosθ0
01
]
绕z轴顺时针变换为:
R z=[00
0cosθ
00
−sinθ0 0sinθ
00
cosθ0
01
]
2.2 一般三维旋转
一般的三维旋转指的是旋转变换是绕空间中任意的轴做旋转变换,这里可以使用平移变换和绕轴变换的复合变换得到其变换矩阵。

在给定了旋转轴和旋转角后,主要可以通过下面三步来实现最终变换:
Step1:平移和旋转给定的旋转轴,使得给定的旋转轴与某一坐标轴重合
Step2:让图像绕着上面的坐标轴完成指定的旋转
Step3:使用对Step1的逆变换使得给定的旋转轴回到原始位置
比如:已知旋转轴为I,它和三轴之间的夹角分别是αβγ,
旋转角度为θ
旋转轴I上的点P r(x r,y r,z r)为旋转的中心点,
其旋转过程如下:
Step1:将旋转中心P r (x r ,y r ,z r )平移到坐标原点
T 1=[1 0 0 1
00
0000
−t x −t y
10−t z 1
]
Step2: 将I 轴绕Y 轴旋转θy 的角度,使得I 轴和YZ 平面重合,注意这里的θy 需要我们根据αβγ值计算出来。

为了方便理解,这里我画了下面这个图,注意,图中是左手坐标系,只是为了方便看才这样画的,但不影响结果。

其中,BG 就是转轴I 。

容易知道,∠GBD =α,∠GBC =β,∠GBA =γ,假设BG 的长度为L ,那么BD=L*cos α,BC=L*cos β,BA=L*cos γ,而要将BG 旋转到面YZ 上,就相当于将面BGC 旋转到面AFCB 上,其旋转角度θy 为∠FCG ,
很容易知道:
sinθy =√BD 2+BA 2
2
=2+cosγ2
2
cosθy =
√BD 2+BA 22
=
√cosα2+cosγ2
2
再由2.1中绕y 轴逆时针变换的公式可知:
R 1=[cosθy 0
1−sinθy 000sinθy 000cosθy 001
]
Step3:将I 轴绕x 轴旋转θx 角度,同Y 轴重合。

在Step2的基础上有右边的图:
∠BGC =θx ,GC=√BD 2+BA 22
,BG=√BD 2+BA 2+BC 22
容易知道:
sinθx =
√BD 2+BA 2+BC 2
2=√cosα2+cosγ22
cosθx =√BD 2+BA 2+BC 2
2=cosβ
再由2.1中绕x轴逆时针旋转的公式可以知道:
R2=[
10
0cosθx
00
sinθx0 0−sinθx
00
cosθx0
01
]
Step4:将图像绕Y轴旋转θ角度后,根据2.1中的绕Y轴变换,其变换矩阵为:
R3=[cosθ0
01
−sinθ0
00 sinθ0
00
cosθ0
01
]
Step5:绕X轴旋转-θx角度,为Step3的逆过程:
R5=[10
0cosθx
00
−sinθx0 0sinθx
00
cosθx0
01
]
Step6:绕Y轴旋转-θy角度,为Step2的逆过程:
R6=[
cosθy0
01
sinθy0
00−sinθy0
00
cosθy0
01
]
Step7:将旋转中心P r(x r,y r,z r)平移到原来的位置:
T2=[1 0
0 1
00
00 00
t x t y
10
t z1
]
其最终的复合矩阵为:
T=T1∗R1∗R2∗R3∗R4∗R5∗R6*T2
在变换过程中的中间变量:sinθy,cosθy,sinθx,cosθx通过上面画图后的方法可以很直观的得到,但是计算比较的麻烦。

我们可以这样考虑这个问题:考虑在旋转轴I上有一个单位向量n,它在三个坐标轴上的投影为n1,n2,n3,这里在去Y轴上一个单位向量首先将它绕x轴旋转-θx角度,然后在将它绕y轴旋转-θy角度,那么这个Y轴上的单位向量就会和I轴上的单位向量重合,其变换过程为:
[n1 n2 n3 1] = [0 1 0 1]* [10
0cosθx
00
−sinθx0
0sinθx
00
cosθx0
01
]∗[
cosθy0
01
sinθy0
00
−sinθy0
00
cosθy0
01
]
=[ sinθx∗sinθy cosθx −sinθx∗sinθy]
即:n1 = sinθx∗sinθy n2= cosθx n3=−sinθx∗sinθy
这里就很容易的可以吧sinθy,cosθy,sinθx,cosθx解出来了。

相关文档
最新文档