バックナンバーはこちら。
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
長方形の画像を台形にできるということは?

アフィン変換に続き、射影変換もばっちりだね!

ちょい待ち!

(まだなんかあるんか・・・。)

これまで試したのは長方形の画像を台形にしたものだった。

まぁそうだね。
それが射影変換でしょ?

射影変換は2次元平面を3次元空間に浮かせた状態の射影を求めるもの。
ということは、台形な画像を長方形にできるはず。

まぁ、理屈上はそうなんだろうけど。

実際、名刺を画像として取り込むのも
台形状のものを長方形にしてるし。

確かに世の中の便利ツールを見るとそういうのは多いね。

というわけで台形→長方形にチャレンジ!
「長方形→台形」と「台形→長方形」の関係性

ここで、以前の「長方形→台形」と「台形→長方形」の関係性を整理しよう。

そうしてもらえると助かる。

まず、画像で説明するとこういう感じ。


これだけ見ると、逆変換をしているように見えるな・・・。

まぁ、逆変換のノリでも実現できるだろうが、
ここでは、射影変換の理屈で台形から長方形にする。
パラメータで表現すると以下になるな。
長方形→台形変換時は以下の座標変換
\(
\begin{eqnarray}
(-1,-1)→&(-0.5,-0.8)\\
(-1,1)→&(-0.8,0.8)\\
(1,1)→&(1,1)\\
(1,-1)→&(0.4,-1)\\
\end{eqnarray}
\)

これの逆をやればOKなはずだ。
\(
\begin{eqnarray}
(-0.5,-0.8)→&(-1,-1)\\
(-0.8,0.8)→&(-1,1)\\
(1,1)→&(1,1)\\
(0.4,-1)→&(1,-1)\\
\end{eqnarray}
\)

なるほど。
最初の状態を台形と思っておけば、割と簡単に変換できそうってことか。

まぁ、それでも対処不能な問題もあるんだけどね。
それは次回説明しよう。
まとめ

まとめだよ。
- 射影変換で長方形から台形への変換はやった。
- 台形から長方形への変換もできるはず。
- 画像での雰囲気を確認。
- パラメータでの雰囲気を確認。
バックナンバーはこちら。
コメント