MATLAB,Python,Scilab,Julia比較 第3章 その97【射影変換⑪】

MATLAB,Python,Scilab,Julia比較 第3章 その97【射影変換⑪】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その97【射影変換⑪】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

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

  • 射影変換の処理の流れ

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

【再掲】射影変換の理屈の因果関係

太郎くん
太郎くん

まずは大まかな流れを再掲

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

「係数の求め方(行列表現)」というところまで終わっている。

射影変換の処理の流れ

太郎くん
太郎くん

おおよそ、理屈的な話は終わった感じかな。

フクさん
フクさん

そうだね。

太郎くん
太郎くん

とすると、実際にこれをプログラムとして組むわけだけど、
ちょっとイメージ沸かないなぁ・・・。

フクさん
フクさん

以下の手順を想定している。

  • 画像の読み込み
  • 変換元座標の確定
  • 変換先座標の確定
  • \(a~h\)の算出
  • 射影変換行列の確定
  • 射影変換
  • 画像保存
太郎くん
太郎くん

言われてみれば、そんな感じか。
先に係数を算出しないと変換行列が確定しないもんね。

注意点

フクさん
フクさん

アフィン変換の時にまだら模様になる問題を覚えてる?

太郎くん
太郎くん

伸縮、回転をした際に、変換先に割り当てれない座標が出てくるから起きる問題だったと思うけど。

フクさん
フクさん

そうそう。

フクさん
フクさん

同じ問題が射影変換でも発生する。
よって、アフィン変換をアフィン逆変換として実施したように、
射影変換も実際のプログラムとしては射影逆変換として実施する。
まぁ、流れはアフィン逆変換をほぼ一緒だけどね。

太郎くん
太郎くん

とすると、
射影変換行列も逆行列として算出するってことか。

フクさん
フクさん

察しがいいね。
その通りだ。
この点、次回もう少し詳細に説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 射影変換の処理の流れを説明。
  • 注意点としては射影変換だとまだら模様問題が起きるので、実際には射影逆変換のアルゴリズムを使用する。

バックナンバーはこちら。

コメント

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