第4回 射影変換

※ 本題に入る前に、必ず動画の 前回課題の補足, 連絡 を見てください。

  1. 画像上の座標の取得
  2. 射影変換

今回は、「被写体としては長方形だが、斜めに撮ったために歪んでいるものを本来の形に変形させる」プログラムを作るので、元画像の選定が重要になる。
例えばこんな写真の看板部分を長方形にしたい。
(解説動画中でこの画像を使って座標を取得して見せているので、この画像を元画像として使ってはいけない)


悪い例1 (写真の中ですでにほぼ長方形なので、プログラムの動作確認にならない)


悪い例2 (長方形の部分はあるが、小さすぎる)


悪い例3 (長方形の部分がない)


悪い例4 (長方形の部分に凹凸がある)
写真上で歪んだ形になっているエリアの頂点が、それぞれ長方形の左上・右上・右下・左下に移動するように変形させれば撮影による歪みが取れる。一般にこういう変換のことを射影変換といい、行列で表すと


このようになる。

\( \begin{pmatrix} x'\\y'\\1 \end{pmatrix} = \begin{pmatrix} h_{11} & h_{12} & h_{13}\\ h_{21} & h_{22} & h_{23}\\ h_{31} & h_{32} & h_{33} \end{pmatrix} \begin{pmatrix} x\\y\\1 \end{pmatrix} \)

これまでに見た拡大・縮小、回転、スキューもこのように行列を使って表せる。このような変換をまとめてアフィン変換という。

課題

課題解答
戻る