【入門】射影変換へ至る道①【数値計算】

【入門】射影変換へ至る道①【数値計算】 数値計算
【入門】射影変換へ至る道①【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、

MATLAB,Python,Scilab,Julia比較 第3章 その89【射影変換③】
MATLAB,Python,Scilab,Julia比較 第3章 その90【射影変換④】
MATLAB,Python,Scilab,Julia比較 第3章 その91【射影変換⑤】
MATLAB,Python,Scilab,Julia比較 第3章 その92【射影変換⑥】
MATLAB,Python,Scilab,Julia比較 第3章 その92【射影変換⑦】

を書き直したもの。

アフィン変換の拡張と言われている射影変換の話。
射影変換の理屈について語っていく。

射影変換の理屈

これから射影変換の理屈の部分を説明していくが、
そこそこのボリュームがある。
よって、2回に分けて説明。
説明の全体像は以下となる。

  • 大まかな理屈
  • 大まかな理屈を座標変換で説明
  • 基本ベクトルと基底ベクトル
  • 元画像平面を3次元空間で表現
  • 3次元空間を地面平面に落とし込む
  • 一連の座標変換まとめ
  • 方程式の変形
  • 行列表現
  • アフィン変換との関係性
  • 係数の求め方
  • 係数の求め方(行列表現)
  • 射影変換の処理の流れ

一個一個はそれほど難しくはないが、
数が多いのと因果関係が難しいから一個一個が簡単でもトータルだと簡単じゃなくなる面はある。
理屈の因果関係はシンプルで、上から順番に因果があると思えばOK。

大まかな理屈

まずは大まかな理屈。
これは画像で説明した方が早い。

射影変換の大まかな理屈、近い方が大きく見れる、遠い方が小さく見える、真下から見上げるとこう見える

3次元空間で見た場合、近い方が大きく見えて、遠くの方が小さく見えるのは感覚的にもわかるだろう。

と言っても、ここからいきなり計算方法もわからない。
これを一つ一つひも解いていく。

大まかな理屈を座標変換で説明

先ほどの大まかな理屈を座標変換で表現すると以下のイメージになる。

射影変換の大まかな理屈(座標変換)

元画像の平面を\(x,y\)平面。
2種類の画像が存在数r空間を\(u,v,w\)空間。
射影が映り込む平明を\(x\prime,y\prime\)平面。
という感じになる。
よって、
\((x,y)\)→\((u,v,w)\)→\((x\prime,y\prime)\)
って流れで変換していく。

これでもまだ計算方法は見えてこないだろう。

基本ベクトルと基底ベクトル

直接的に射影変換には関連しないのだが、
基本ベクトルと基底ベクトルについて簡単に説明しておこう。
これはそれほど複雑な話ではない。
まずはこの図を見てみよう。

基本ベクトルと基底ベクトル

基本ベクトルの方は、平面上のベクトル表現の基本系というのはわかると思う。
基本ベクトルは、軸に沿った2本の単位ベクトル(大きさ1)になる。
これがあれば、すべての平面座標を表現できる。

基底ベクトルは
2本の交差するベクトル。
このベクトルも、すべての閉演座標を表現できる。
図の例では、(1,2)、(2,1)の2つのベクトルがあるが、
これを任意の倍率且つ合成すれば、あらゆる座標が表現可能だ。
基本ベクトルは、強烈な制約のついた基底ベクトルと言える。

次のページへ

元画像平面を3次元空間で表現するとどうなるか?

コメント

タイトルとURLをコピーしました