为了能处理不同分辨率的图像,我们采用了计算机图形学的规范化设备中坐标,图像像素坐标的长轴范围为[-1,1],短轴范围:[-a,a],其中a是长宽比的倒数,对于宽度为W,高度为H的图像,将像素(X_,Y_)映射到归一化坐标(x,y),则映射方程为:
x
=
(
2
X
−
−
W
)
/
S
x=(2X_--W)/S
x=(2X−−W)/S,
y
=
(
2
Y
−
−
H
)
/
S
y=(2Y_--H)/S
y=(2Y−−H)/S ,其中,S=max(W,H)
2D(平面)运动
最简单的2D平面坐标变换如下图所示:
1.平移
2D平移可以表示为:
x
‘
=
x
+
t
x^`=x+t
x‘=x+t 或者可以表示为:
x
‘
=
[
I
t
]
x
−
x^`=[I \quad t]x^-
x‘=[It]x−,其中I是(2x2)单位矩阵,
x
−
x^-
x−为(x,y,1)的齐次坐标。
2.旋转+平移
x
‘
=
[
R
,
t
]
x
−
x^`=[R,t]x^-
x‘=[R,t]x−,其中
R
=
[
c
o
s
θ
−
s
i
n
θ
s
i
n
θ
c
o
s
θ
]
R=\left[\begin{matrix}cos\theta &-sin\theta\\sin\theta&cos\theta\end{matrix}\right]
R=[cosθsinθ−sinθcosθ]
其中
R
R
T
=
I
RR^T=I
RRT=I并且
∣
R
∣
|R|
∣R∣的正交旋转矩阵为1.
3.缩放旋转(相似度变换)
该变换科表示为:
x
‘
=
[
s
R
,
t
]
x
−
x^`=[sR,t]x^-
x‘=[sR,t]x−,也可以表示为
x
‘
=
[
a
−
b
t
x
b
a
t
y
]
x
−
x^`=\left[\begin{matrix}a &-b&tx \\b&a&ty\end{matrix}\right]x^-
x‘=[ab−batxty]x−
4.仿射变换
x
‘
=
A
x
−
x^`=Ax^-
x‘=Ax−,A是一个2x3的任意矩阵,仿射变换平行线保持平行
5.投影变换
也称为透视变换或者单适应矩阵。
KaTeX parse error: Expected group after '^' at position 2: x^̲'~
H
x
Hx
Hx,其中~表示等比例缩放,H表示任意的3x3矩阵。
最后用一张图来表示他们的变换效果
3D变换
先来看一张从世界物体3D如何投影到2D坐标的模型:
3D坐标p=(X,Y,Z)投影到以沿着Z轴距离为f的投影平面上,其坐标x=(x,y,1),则根据三角形相似原理得到
x
=
f
X
Z
x=f\frac{X}{Z}
x=fZX,
y
=
f
Y
Z
y=f\frac{Y}{Z}
y=fZY
视场角与焦距f关系为:KaTeX parse error: Double superscript at position 4: f^-^̲1=tan(\frac{\th…
在计算机图形学中,透视投影常用一个置换矩阵表示,
我们丢弃掉Z缓冲区值,因为在图像中不确定z,因此:
未完待续。。。