[技術ブログ] コンピュータビジョンにおける同次座標(Homogeneous Coordinate)
同次座標の紹介
同次座標(Homogeneous Coordinate)は、射影幾何学で使用される従来のデカルト座標の拡張です。これにより、平行移動、回転、拡大縮小などの幾何学的変換を統一されたフレームワークで表現および操作できます。同次座標を使用することで、これらの変換の数学的表現が簡略化され、計算がより効率的かつ簡単になります。
同次座標とは?
2D空間において、デカルト座標の点 [latex](x, y) [/latex] は、同次座標では [latex](x, y, w)[/latex] として表されます。ここで [latex]w [/latex] はゼロでないスカラーです。簡便のために、通常 [latex]w = 1 [/latex] と設定し、点 [latex](x, y) [/latex] は [latex](x, y, 1) [/latex] となります。この表現は3D空間にも拡張され、点 [latex](x, y, z) [/latex] は [latex](x, y, z, w) [/latex] となります。
同次座標を使う理由
- 統一された変換表現:同次座標を使用すると、平行移動、回転、および拡大縮小を行列の積として表現できます。この統一により、複雑な変換の実装が簡略化されます。
- 射影幾何学:同次座標は無限遠の点を表現でき、射影変換やコンピュータグラフィックスにおいて有用です。
- 計算の利便性:デカルト座標では線形でない操作(例:平行移動)が、同次座標では線形になります。これにより、行列代数を用いた計算がより効率的になります。
同次変換行列
平行移動
点 [latex](x, y)[/latex] を [latex](t_x, t_y)[/latex] だけ平行移動するための同次座標行列は次の通りです:
$$
\begin{pmatrix} 1 & 0 & t_x \ 0 & 1 & t_y \ 0 & 0 & 1 \end{pmatrix}
$$
この行列を同次座標の点 [latex](x, y, 1)[/latex] に掛けると、新しい点 [latex](x + t_x, y + t_y, 1)[/latex]が得られます。


回転
点 [latex](x, y) [/latex] を原点を中心に角度 [latex]\theta[/latex] だけ回転させるための回転行列は次の通りです:
$$
\begin{pmatrix} \cos\theta & -\sin\theta & 0 \ \sin\theta & \cos\theta & 0 \ 0 & 0 & 1 \end{pmatrix}
$$
この行列を点 [latex](x, y, 1) [/latex]に掛けると、点 [latex](x'\cos\theta - y'\sin\theta, x'\sin\theta + y'\cos\theta, 1)[/latex] が得られます。


拡大縮小
点 [latex](x, y)[/latex] を x方向に [latex]s_x[/latex]、y方向に [latex]s_y[/latex] で拡大縮小するための行列は次の通りです:
$$
\begin{pmatrix} s_x & 0 & 0 \ 0 & s_y & 0 \ 0 & 0 & 1 \end{pmatrix}
$$
この行列を [latex](x, y, 1)[/latex] に掛けると、拡大縮小された点 [latex](s_x x, s_y y, 1)[/latex] が得られます。


結論
同次座標は、コンピュータビジョンやグラフィックスの分野で重要な役割を果たし、幾何学的変換を扱う強力なツールです。点と変換を統一された行列形式で表現することで、画像や形状の操作と変換のプロセスが簡略化されます。この数学的な優雅さと計算の利便性により、同次座標はコンピュータビジョンの分野で不可欠な概念となっています。


