MATLAB,Python,Scilab,Julia比較 第3章 その104【射影変換(台形→長方形)②】

MATLAB,Python,Scilab,Julia比較 第3章 その104【射影変換(台形→長方形)②】 数値計算

バックナンバーはこちら。
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ってことかな。

フクさん
フクさん

いまのところその想定だ。
まぁ、なんか問題あったらその時に対応しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 台形から長方形にする際に引き延ばした部分の画像は荒くなる。
    • 射影変換に限らず、引き延ばしが発生する座標変換では必ず起きる問題。
  • プログラム化自体は以前のものを使い回し。
    • 変換元、変換先のパラメータが変わるくらい。

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

コメント

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