[技術ブログ] コンピュータビジョンにおける同次座標(Homogeneous Coordinate)
同次座標の紹介
同次座標(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) を (tx, ty) だけ平行移動するための同次座標行列は次の通りです:
(1 0 tx)
(0 1 ty)
(0 0 1 )
この行列を同次座標の点 (x, y, 1) に掛けると、新しい点 (x + tx, y + ty, 1)が得られます。


回転
点 (x, y) を原点を中心に角度 θ だけ回転させるための回転行列は次の通りです:
(cos θ - sin θ 0)
(sin θ cos θ 0)
(0 0 1)
この行列を点 (x, y, 1)に掛けると、点 (x cos θ - y sin θ, x sin θ + y cos θ, 1) が得られます。


拡大縮小
点 (x, y) を x方向に sx、y方向に sy で拡大縮小するための行列は次の通りです:
(sx 0 0)
(0 sy 0)
(0 0 1)
この行列を (x, y, 1) に掛けると、拡大縮小された点 (sx x, sy y, 1) が得られます。


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


