バックナンバーはこちら。
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
対処不能な問題
前回の最後の方で、対処不能な問題があるようなこと言ってたけど、
どんな問題?
これは見てもらった方が早いな。
以下の画像を見てもらおう。
え?!荒くなるの?!
まぁこれは射影変換に限らずだけど、
画像を引き延ばすような処理としては必ず発生する問題だな。
そうか。
台形でしぼませてる部分ほど、長方形にした際に補完するピクセルが増えるから、
その結果として荒くなるのか。
そうそう。
実際のプログラムの流れ
というわけでプログラムを組んでいくわけだが・・・。
結構面倒くさい感じ?
いんや。
コードとしては、前回の射影変換とほぼ一緒だ。
差分としては、
変換元と変換先が変わる感じだな。
前回も記載したが、以下のパラメータに変化する。
以前の長方形を台形状にする射影変換時の座標変換のパラメータ
\(
\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}
\)
今回の台形状を長方形にする射影変換時の座標変換のパラメータ
\(
\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}
\)
たしか、プログラム上に該当するパラメータがいたから
そこを書き換えればOKってことかな。
いまのところその想定だ。
まぁ、なんか問題あったらその時に対応しよう。
まとめ
まとめだよ。
- 台形から長方形にする際に引き延ばした部分の画像は荒くなる。
- 射影変換に限らず、引き延ばしが発生する座標変換では必ず起きる問題。
- プログラム化自体は以前のものを使い回し。
- 変換元、変換先のパラメータが変わるくらい。
バックナンバーはこちら。
コメント