私はモバイル拡張現実アプリをやっています。チェス盤のキャリブレーションを使用して、カメラをキャリブレーションして、内部パラメーターと外部パラメーターを取得する必要があります。
nexus 4 をキャリブレーションすると、すべての nexus が同じ焦点距離、スキュー ファクター、ディストーション マトリックスを持つと仮定できますか?
ありがとう
私はモバイル拡張現実アプリをやっています。チェス盤のキャリブレーションを使用して、カメラをキャリブレーションして、内部パラメーターと外部パラメーターを取得する必要があります。
nexus 4 をキャリブレーションすると、すべての nexus が同じ焦点距離、スキュー ファクター、ディストーション マトリックスを持つと仮定できますか?
ありがとう
ほとんどのカメラには、カメラ パイプラインにコード化された歪み補正操作が付属しているため、歪みパラメーターを検索する必要はほとんどありません。画像周辺の直線が本当にまっすぐであることを確認してください。ピクセルは正方形であるため、スキューはゼロに近く、fx=fy であると予想されます。
あなたが言及したパラメータとは別に、主点Cx、Cy(多くの場合w / 2、h / 2に近いセンサーとの光軸の交点)には2つあります。したがって、全体として、F、Cx、Cy の 3 つのパラメーターしかありません。最初のパラメーターは、同じモデルの電話の中で最も変化しやすいものです (私の経験から)。携帯電話を使用して別のカメラの相対位置を把握していない場合は、焦点距離だけを正確に知る必要がある可能性が高くなります。
明らかに、単一のパラメーターについて心配する必要がある場合、チェスボードのリグを使用して、固有パラメーターに加えて外部パラメーターを見つけようとするよりも簡単に取得する方法があります。測定がなくても把握できます。カメラの視野 (getHorizontalViewAngle() など) を取得して使用するだけです。
tan(fov) = image_width/2 / f
または、携帯電話をターゲットに平行に保つ簡単な測定を行うことができます: h ピクセルの画像を生成するサイズ H の垂直ターゲットの場合、次のように f を取得します。
f/z = h/H