最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

stereoParameters

ステレオ カメラ システムのパラメーターを格納するオブジェクト

説明

stereoParameters オブジェクトは、2 つのカメラの内部パラメーターと外部パラメーター、およびそれらの幾何学的な関係を格納します。

作成

ここで説明する関数 stereoParameters を使用して stereoParameters オブジェクトを作成できます。また、入力イメージ点の M x 2 x numImages x 2 の配列 (M は各パターンのキーポイント座標の数) の estimateCameraParameters を使用して stereoParameters オブジェクトを作成することもできます。

説明

stereoParams = stereoParameters(cameraParameters1,cameraParameters2,rotationOfCamera2,translationOfCamera2) は、ステレオ カメラ システムのパラメーターを含む stereoParameters オブジェクトを作成し、CameraParameters1CameraParameters2RotationOfCamera2、および TranslationOfCamera2 プロパティを設定します。

stereoParams = stereoParameters(paramStruct) は、paramStruct に格納されているパラメーターを使用して既存の stereoParameters オブジェクトから同一の stereoParameters オブジェクトを作成します。

入力引数

すべて展開する

ステレオ パラメーター。ステレオ パラメーターの struct として指定します。既存の stereoParameters オブジェクトから paramStruct を取得するには、関数 toStruct を使用します。

プロパティ

すべて展開する

2 つのカメラの内部パラメーターと外部パラメーター

カメラ 1 のパラメーター。cameraParameters オブジェクトとして指定します。オブジェクトには、カメラの内部パラメーター、外部パラメーターおよびレンズ歪みパラメーターが含まれます。

カメラ 2 のパラメーター。cameraParameters オブジェクトとして指定します。オブジェクトには、カメラの内部パラメーター、外部パラメーターおよびレンズ歪みパラメーターが含まれます。

2 つのカメラの幾何学的な関係

カメラ 1 に対するカメラ 2 の回転。3 行 3 列の行列として指定します。

カメラ 1 に対するカメラ 2 の並進。3 要素ベクトルとして指定します。

基礎行列。3 行 3 列の行列として格納されます。次の方程式が必ず満たされるように、基礎行列は 2 つのステレオ カメラを関連付けます。

[P21]*FundamentalMatrix*[P11]'=0

イメージ 1 の点 P1 はイメージ 2 の点 P2 に対応しています。

基本行列。3 行 3 列の行列として格納されます。次の方程式が必ず満たされるように、基本行列は 2 つのステレオ カメラを関連付けます。

[P21]*EssentialMatrix*[P11]'=0

イメージ 1 の点 P1 はイメージ 2 の点 P2 に対応しています。どちらの点も、原点がカメラの光学的中心である正規化されたイメージ座標で表されます。ピクセル座標 x と y は、焦点距離 fx および fy で正規化されています。

推定されたパラメーターの精度

すべてのイメージのペアに対する再投影された点と検出された点の間の平均ユークリッド距離。ピクセル単位で指定します。

カメラ パラメーター推定の設定

2 つのカメラの外部パラメーターを推定するキャリブレーション パターンの数。整数として保存します。

キャリブレーション パターンのキー ポイントのワールド座標。M 行 2 列の配列として指定します。M は、パターン内のキー ポイントの数を表します。

ワールド座標点単位。文字ベクトルとして指定します。文字ベクトルは、測定単位を示します。

オブジェクト関数

toStructConvert a stereo parameters object into a struct

すべて折りたたむ

キャリブレーション イメージを指定します。

leftImages = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
    'calibration','stereo','left'));
rightImages = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
    'calibration','stereo','right'));

チェッカーボードを検出します。

[imagePoints,boardSize] = ...
  detectCheckerboardPoints(leftImages.Files,rightImages.Files);

チェッカーボード キーポイントのワールド座標を指定します。正方形のサイズはミリメートル単位です。

squareSize = 108;
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

ステレオ カメラ システムをキャリブレーションします。両方のカメラの解像度は同じです。

I = readimage(leftImages,1); 
imageSize = [size(I,1),size(I,2)];
params = estimateCameraParameters(imagePoints,worldPoints, ...
                                  'ImageSize',imageSize);

キャリブレーションの精度を可視化します。

  showReprojectionErrors(params);

カメラの外部パラメーターを可視化します。

figure;
showExtrinsics(params);

参照

[1] Zhang, Z. “A Flexible New Technique for Camera Calibration”. IEEE Transactions on Pattern Analysis and Machine Intelligence.Vol. 22, No. 11, 2000, pp. 1330–1334.

[2] Heikkila, J, and O. Silven. “A Four-step Camera Calibration Procedure with Implicit Image Correction.” IEEE International Conference on Computer Vision and Pattern Recognition. 1997.

拡張機能

R2014a で導入