SOARISTO工房 Logo

【OpenCV】位相限定相関法による画像マッチング(3)

 前回までの検証で、位相限定相関法により、2つの画像の上下(ティルト)と左右(パン)のズレを補正できることが分かりました。

OpenCV, Phase Only Correlation, Porsche 911 Carrera S, Result

 前回の結果です。

 左右2つの画像のシフト量は、

   X: -192.355[pixel]
   Y: 46.7339[pixel]

でした。

 カメラ(αNEX-5R)を三脚の雲台に固定し、そのまま左右にパンしたはずなのですが、なぜこれだけ上下にズレてしまったのか、このズレを補正するにはどうすれば良いか、さまざまに考えを巡らせていたところ、風呂に浸かっている時に、ハタと気づきました。0xF9A0

 この上下のズレは、「カメラのロール(左右の回転)によるものではないか」と。

 カメラを雲台に載せて左右にパンしたので、「ロールによるズレはないはずだ」というのは、単なる思い込みでした。

 思い起こせば、確かに、雲台に水準器は付いていましたが、公道のド真ん中で、歩行者信号が青の時に、横断歩道の上から急いで撮ったので、水準器を合わせているヒマはありませんでした。

 ゆえに、水平が出ていないまま(カメラがロールしたまま)左右にパンしたため、上記のような上下のズレが生じてしまったようです。

 さて、この上下のズレを生じさせたカメラのロール角ですが、どのようにすれば求められるでしょうか。

 原画像の大きさは1920×1080で、上下のズレは、上記のとおり、Y方向に46.7339[pixel]なので、回転軸を画像の中心(960, 540)とすると、ロール角は、

   tan-1(46.7339/960) = 2.787°

と求められます。

 試しに、左右それぞれの画像を2.787°回転させ、改めて位相限定相関法によりシフト量を推定し、2つの画像を合成すると、以下のようになります。

OpenCV, Phase Only Correlation, Porsche 911 Carrera S, Result
(クリックで拡大)

 傾きを補正して、リサイズすると、以下のようになります。

OpenCV, Phase Only Correlation, Porsche 911 Carrera S, Result
(クリックで拡大)

 いかがでしょうか。

 2つの画像のつなぎ目の輝度値の変化が少し不自然に見えますが、それ以外は、かなり“それらしく”見えるかと思います。
(つなぎ合わせ方法は、目下、アルファブレンディングに改良中です)

 フルハイビジョンの画像を2枚重ね合わせた、堂々の3840×1080の解像度です。0xF9C6

〔関連情報〕
   ・【OpenCV】位相限定相関法による画像マッチング(2)
   ・【OpenCV】位相限定相関法による画像マッチング(1)
   ・【OpenCV】ステレオカメラからの画像入力(1)
   ・【OpenCV】位相画像の生成
   ・【OpenCV】広角レンズの歪み補正

Trackback(0)

Trackback URL: https://www.soaristo.org/mt/mt-tb.cgi/1000

Post Comment