同次座標の紹介
同次座標(Homogeneous Coordinate)は、射影幾何学で使用される従来のデカルト座標の拡張です。これにより、平行移動、回転、拡大縮小などの幾何学的変換を統一されたフレームワークで表現および操作できます。同次座標を使用することで、これらの変換の数学的表現が簡略化され、計算がより効率的かつ簡単になります。
同次座標とは?
2D空間において、デカルト座標の点 \((x, y) \) は、同次座標では \((x, y, w)\) として表されます。ここで \(w \) はゼロでないスカラーです。簡便のために、通常 \(w = 1 \) と設定し、点 \((x, y) \) は \((x, y, 1) \) となります。この表現は3D空間にも拡張され、点 \((x, y, z) \) は \((x, y, z, w) \) となります。
同次座標を使う理由
- 統一された変換表現:同次座標を使用すると、平行移動、回転、および拡大縮小を行列の積として表現できます。この統一により、複雑な変換の実装が簡略化されます。
- 射影幾何学:同次座標は無限遠の点を表現でき、射影変換やコンピュータグラフィックスにおいて有用です。
- 計算の利便性:デカルト座標では線形でない操作(例:平行移動)が、同次座標では線形になります。これにより、行列代数を用いた計算がより効率的になります。
同次変換行列
平行移動
点 \((x, y)\) を \((t_x, t_y)\) だけ平行移動するための同次座標行列は次の通りです:
$$
\begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix}
$$
この行列を同次座標の点 \((x, y, 1)\) に掛けると、新しい点 \((x + t_x, y + t_y, 1)\)が得られます。
回転
点 \((x, y) \) を原点を中心に角度 \(\theta\) だけ回転させるための回転行列は次の通りです:
$$
\begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}
$$
この行列を点 \((x, y, 1) \)に掛けると、点 \((x'\cos\theta - y'\sin\theta, x'\sin\theta + y'\cos\theta, 1)\) が得られます。
拡大縮小
点 \((x, y)\) を x方向に \(s_x\)、y方向に \(s_y\) で拡大縮小するための行列は次の通りです:
$$
\begin{pmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{pmatrix}
$$
この行列を \((x, y, 1)\) に掛けると、拡大縮小された点 \((s_x x, s_y y, 1)\) が得られます。
結論
同次座標は、コンピュータビジョンやグラフィックスの分野で重要な役割を果たし、幾何学的変換を扱う強力なツールです。点と変換を統一された行列形式で表現することで、画像や形状の操作と変換のプロセスが簡略化されます。この数学的な優雅さと計算の利便性により、同次座標はコンピュータビジョンの分野で不可欠な概念となっています。