计算机图形学(一)

计算机图形学(一)

计算机图形学中的变换

缩放 Scale

\[ M=\begin{bmatrix}S_x&0\\0&S_y\end{bmatrix} \]

  • \(S_x\):x轴的缩放因子
  • \(S_y\):y轴的缩放因子

image-20240602125036586 \[ \begin{bmatrix}x'\\y'\end{bmatrix}=M\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}S_x&&0\\0&&S_y\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}S_x\cdot x\\S_y\cdot y\end{bmatrix} \]

  • \(S_x\)或者\(S_y\)大于1的时候,图片沿着相应方向放大,当小于1的时候,沿着相应方向缩小。
  • \(S_x=S_y\)的时候,图片按照比例放大缩小

旋转 Rotate

\[ R(\theta)=\begin{bmatrix}\cos(\theta)&-\sin(\theta)\\\sin(\theta)&\cos(\theta)\end{bmatrix} \]

  • \(\theta\):逆时针旋转角度,单位是弧度

image-20240602125357043 \[ \begin{bmatrix}x'\\y'\end{bmatrix}=R(\theta)\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}\cos(\theta)&-\sin(\theta)\\\sin(\theta)&\cos(\theta)\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}x\cos(\theta)-y\sin(\theta)\\x\sin(\theta)+y\cos(\theta)\end{bmatrix} \]

平移 Homogeneous Coordinatess

\[ 2\text{D point}=(x,y,1)^T\\2\text{D vector}=(x,y,0)^T \]

\[ T=\begin{bmatrix}1&0&T_x\\0&1&T_y\\0&0&1\end{bmatrix} \]

  • 齐次坐标允许将平移、旋转、缩放等几何变换统一表示为矩阵乘法。这使得变换组合和计算更加简洁和高效。

  • 一个二维点 (x,y)的齐次坐标表示为 (x,y,1)。这个表示方式允许通过矩阵变换进行各种几何操作,如平移、旋转和缩放。

  • 一个二维向量 (x,y)的齐次坐标表示为 (x,y,0)。向量的最后一个分量是 0,这表示向量不受平移变换的影响,仅参与旋转和缩放等线性变换。

image-20240602130512876 \[ \begin{bmatrix}x'\\y'\\1\end{bmatrix}=T\begin{bmatrix}x\\y\\1\end{bmatrix}=\begin{bmatrix}1&0&T_x\\0&1&T_y\\0&0&1\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}=\begin{bmatrix}x+T_x\\y+T_y\\1\end{bmatrix} \]

视图变换 View Transform

相机轴定义

通常,大家约定:

  • 相机向上的方向为Y轴

  • 相机看向的方向为Z轴

  • 而X轴则遵循右手定则

image-20240602131828558

但是有些论文或者库定义会有所不同,例如ColMap

世界坐标系(惯性坐标系)

在机器人的运动过程中,常见的做法是设定一个惯性坐标系,可以认为它是固定不动的(相对的),如果是单目相机,会选择拍摄的第一张照片作为实践坐标系,如果是双目摄像机,会选择其中一个作为世界坐标系。

移动坐标系(相机坐标系)

同时,相机或者机器人则是一个移动坐标系

投影变换 Projection

正交变换


计算机图形学(一)
https://wjhln.github.io/2024/06/02/计算机图形学(一)/
作者
王嘉浩
发布于
2024年6月2日
许可协议