バックナンバーはこちら。
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}
\)
なるほど。
最初の状態を台形と思っておけば、割と簡単に変換できそうってことか。
まぁ、それでも対処不能な問題もあるんだけどね。
それは次回説明しよう。
まとめ
まとめだよ。
- 射影変換で長方形から台形への変換はやった。
- 台形から長方形への変換もできるはず。
- 画像での雰囲気を確認。
- パラメータでの雰囲気を確認。
バックナンバーはこちら。
コメント