Flashでリアルタイムに魚眼画像を平面へ変換(2)

前回は弧を直線に描くという簡易ロジックを使用しましたが、今回は魚眼画像の正像化に利用される座標変換式を使い、Flashでリアルタイムに読み込んだ魚眼画像を平面に変換するものを試作してみました。

また前回同様のアニメーションが有るものと、今回は変換速度を考慮したアニメーションの無いものをつくってみました。

▼アニメーション有り

  • フレームイベントで変換を行うため、速度が遅い。
  • 焦点距離に対応する数値を変更するスライダを設置
  • 魚眼画像の半径を調整するスライダを設置
  • ビットマップスムージングの適用チェックボックス設置
  • 変換後にズーム操作を行うスライダを設置


※こちらは変換後の画像移動をマウスドラッグで操作します。

 

▼アニメーション無し

  • ループで座標を計算し、変換速度を上げる
  • 読み込んだ画像のサイズを表示
  • 変換処理にかかった時間を表示
  • ビットマップスムージングの適用チェックボックス設置

ビットマップのスムージング有りと無しにおける画像を比較してみました。画像を拡大(約5倍)してみると効果は確認できましたが、等倍では、あまりよくわかりません。

変換速度については、アニメーション有りの方で比べると、2秒くらいスムージングにかかるようですが、アニメーション無しの方では、それほど差が無いようです。
(OS:WindowsXP / Browser: FireFox3.6.3 / CPU:2.20GHz Core2Duo / FlashPlayer: WIN 10,1,53,64 debug)

スムージング比較

座標変換方法が間違っているのか補正がうまくできていない感じです。画質補間については、まだ改善の余地があると思います。また、撮影するレンズ仕様までは現在のところ、考慮していません。

About 360eyes