次の方法で、投影歪みのある画像のメトリック補正を実装しています。
- 元の画像から、2組の平行線を見つけ、それらの交点(無限遠点の消失点)を見つけています。
- 円錐曲線にフィットする円上の5つの非同一線上の点を選択し、前述の点を使用して、その円錐曲線が無限遠直線と交差する場所を確認しています。
- これらの点を使用して、歪んだ二重縮退円錐曲線を見つけます。
理論的には、歪んだ円錐曲線はC *'= HC * H'(C *は二重縮退円錐曲線、'は転置、Hは私のホモグラフィ)によって決定されるため、SVDを実行してHを決定できるはずです。 *は、対角ゼロの最後の要素を持つ3x3の単位行列です。ただし、SVDを実行すると、対角行列にSVDが含まれません。一部の行列では、代わりにコレスキー分解を使用してこれを回避できます(C *'= HH'に因数分解します。これは、少なくともこれについてはほとんど問題ありません)が、これには正定値の行列が必要です。SVDで返される対角行列内のスケールをU行列とV'行列に同じに保ちながら均等に分散する方法はありますか?(例:U = V)。
これにはMATLABを使用しています。明らかな何かが欠けていると確信しています...