Skip to content

Instantly share code, notes, and snippets.

@yokotak0527
Last active December 21, 2015 07:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yokotak0527/6274466 to your computer and use it in GitHub Desktop.
Save yokotak0527/6274466 to your computer and use it in GitHub Desktop.
射影変換 ( ホモグラフィ )
     bx + by + c
u = -------------
     gx + yh + 1

     dx + ey + f
v = -------------
     gx + hy + 1

平面射影変換

変換式

u = (x*a + y*b + c) / (x*g + y*h + 1)
v = (x*d + y*e + f) / (x*g + y*h + 1)

↓↓↓ 分数を含んでしまうので以下のようにする ↓↓↓

u = x*a + y*b + c - x*g*u - y*h*u
v = x*d + y*e + f - x*g*v - y*h*v
説明
x,y 変換前のX座標、Y座標
a,b,c,d,e,f,g,h 変換係数
u,v 変換後の座標
  • 係数を算出するには、最低8個の変換式が必要になる。
  • 4つの対応点があれば8個の変換式(X,Yそれぞれ4つ)を生成できる。
  • 8個の変換式から連立方程式を解くことにより、各係数を算出する。

[引用] > http://miraiware.net/memo/img-homography.html

パラメータを行列で表すと

| u |   | a b c || x |
| v | = | d e f || y |
| 1 |   | g h 1 || 1 |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment