透視変換とホモグラフィ変換メモ

 透視変換とは透視投影のこと ? ホモグラフィ変換ではなく ? と分からなくなった。

 

モグラフィ変換は、
斜めから見た絵」を「真上から見たようにする」関数ではない( 己勘違い )
ただ単に、とある平面から別平面へと射影する。

 

モグラフィ変換 ( 射影変換 ):
とある面から別の面に対象を変形して射影。

透視変換
遠近があるように変換して 2D へ投影3D から 2D に描画する為の図法。

変換行列
アフィン変換やホモグラフィ変換で出てくる 3 * 3 とかの行列。
  p' = A * p の A 行列。 p変換前の座標。p'変換後の座標。

 

ex ) OpenCV

     // 透視変換の行列求め ( 変換行列 )
    auto mtx = cv::getPerspectiveTransform( srcP, dstP );
    // or auto mtx = cv::findHomography( 略
   
    cv::warpPerspective(src, dst, mtx ); // 透視変換

cv::getPerspectiveTransform は 4 点。
cv::findHomography は複数且つ色々設定可 ( という違い。多分 )
どちらも変換行列を求める関数。

 

cv::warpPerspective は画像を透視変換するが、どのように透視変換を行うかは
引数の変換行列による。 ( 多分。cv::warpPerspective でもアフィン変換できそう ? )
warp ( 歪曲・ねじる ) Perspective ( 透視画法 )

 

 

 

 こちらから。
http://kondolab.org/archive/2010/research/cadcgtext/Chap4/Chap401.html
https://stackoverflow.com/questions/11237948/findhomography-getperspectivetransform-getaffinetransform
OpenCV: Geometric Image Transformations
OpenCV: Camera Calibration and 3D Reconstruction
OpenCV: Geometric Image Transformations

以上。