2012-01-11 9 views
0

私は魔女のアンドロイド用のARアプリケーションを作成しようとしています。ユーザーはカメラを正方形のマーカーに向け、3Dモデルがマーカーの上に表示されます。カメラと歪み行列のないOpenCV resolvePnP

私は私から(カメラ行列と 歪み行列の魔女を提供する必要があり、私は魔女にresolvePnPを使用するこれら2つの行列を取得するには

をマーカの回転と平行移動を得るためにOpenCVのを使ってますが..います理解)は、それぞれのカメラタイプに固有です。 残念ながら、このアプリはほとんどのアンドロイドデバイスでサポートされるべきで、私はカメラの較正手順(openCVが提供する機能)を実行するようユーザーに依頼することができないため、これは大きな欠点です。

質問:カメラのマトリックスと歪みマトリックスを排除する方法はありますか?または、デバイスに対するマーカーの3D位置を計算する別の方法がありますか?

私はQCARとUnity ARを試しましたが(3Dモデルはサーバからダウンロードされ、絶えず変更されているので)、私はOpenCVに行くことを余儀なくされました。

本当にありがとうございます。

ありがとうございました。

答えて

1

あなたに悪いニュースです。答えは決定的で取り返しのつかない大きなNO NOです。

カメラに関することが分からない場合は、実際にあなたの画像について何も知ることができません。カメラは、カメラマットと歪みマットの2つのマトリックスで記述されます。

しかし、悪いニュースと一緒に、いくつかの良いニュースがあります。多分、あなたは何かをすることができます。

多くのARアプリケーションでは、歪み行列は無視できます。小さな歪みは気にしないでください。あなたが悪いために良い変更されたことを言うよ今

w/(2*tan(camera.fovX())), 0, w/2, 0, 
0, h/(2*tan(camera.fovY())), h/2, 0, 
0, 0, 1, 0 

、::

そして、あなたがカメラの視野を知っていればカメラ行列を容易に構築することができます。 カメラ行列を使用するには、カメラのFOVを必要とし、あなたのために校正する必要があります。良いニュースは、アンドロイドでは、getHorizo​​ntalAperture()とgetVerticalAperture()などがあります。アパーチャー== fov。

最後に、本当に悪いニュースは:多くの電話機では、返された値が正しいだけではありません。メーカーは気にしなかったので。そして、それは偽の角度を返す:10度、180度など

幸運!

関連する問題