0

カメラを使って壁に映像を映したい。画像は、基本的に、カメラと壁の間の距離に合わせてスケーリングする必要があります。

まず、直角三角法 (visionHeight * Math.tan(a)) を使用して距離計算を行いました。100% 正確ではありませんが、実際の値に近いです。

次に、距離がわかれば、次の二等辺三角形の三角関数の式を使用して、すべてのパノラマの高さを計算することができます: c = a * tan(A); A = mCamera.getParameters().getVerticalViewAngle(); 結果は、実際のオブジェクトの高さよりも約 30% 高く、ちょっと奇妙です。

double panoramaHeight = (distance * Math.tan( mCamera.getParameters().getVerticalViewAngle() / 2 * 0.0174532925)) * 2;

また、同じ二等辺三角形の公式を使用してこれらの角度を計算しようとしましたが、距離と高さがわかりました。角度は 28 度と 48 度です。

Android カメラが撮影したものすべてをレンダリングしないということですか? そして、あなたが提案できる他の解決策は何ですか?

ここに画像の説明を入力

4

1 に答える 1

0

Web 検索によると、getVerticalViewAngle() によって返される値は、すべてのデバイスで盲目的に信頼できるわけではありません。また、ズーム レベルとアスペクト比を考慮する必要があることにも注意してください。スマートフォン カメラの画角の決定を参照してください。

于 2012-10-27T04:12:16.310 に答える