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

undistortFisheyeImage

魚眼イメージのレンズ歪みの修正

構文

J = undistortFisheyeImage(I,intrinsics)
[J,camIntrinsics] = undistortFisheyeImage(I,intrinsics)
[___] = undistortFisheyeImage(___,interp)
[___] = undistortFisheyeImage(___,Name,Value)

説明

J = undistortFisheyeImage(I,intrinsics) は、イメージ I のレンズ歪みを除去して、イメージ J を結果として返します。

[J,camIntrinsics] = undistortFisheyeImage(I,intrinsics)cameraIntrinsics オブジェクトも返します。これは、イメージ J を生成する仮想遠近投影カメラに対応します。

[___] = undistortFisheyeImage(___,interp) は、前述の構文を使用して、内挿法 interp を指定します。

[___] = undistortFisheyeImage(___,Name,Value) は 1 つ以上の Name,Value 引数ペアを指定します。プロパティが未指定の場合は既定値になります。

すべて折りたたむ

チェッカーボード キャリブレーション パターンを検出してから、カメラのキャリブレーションを行うことで、魚眼イメージからレンズ歪みを除去します。次に結果を表示します。

一連のチェッカーボードのキャリブレーション イメージを収集します。

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
    'calibration','gopro'));

イメージからキャリブレーション パターンを検出します。

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

チェッカーボードの正方形のコーナーのワールド座標を生成します。

squareSize = 29; % millimeters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

イメージ点およびワールド座標点に基づいて魚眼カメラのキャリブレーション パラメーターを推定します。最初のイメージを使用してイメージのサイズを取得します。

I = readimage(images,1);
imageSize = [size(I,1) size(I,2)];
params = estimateFisheyeParameters(imagePoints,worldPoints,imageSize);

最初のイメージ I からレンズ歪みを除去して、結果を表示します。

J1 = undistortFisheyeImage(I,params.Intrinsics);
figure
imshowpair(I,J1,'montage')
title('Original Image (left) vs. Corrected Image (right)')

J2 = undistortFisheyeImage(I,params.Intrinsics,'OutputView','full');
figure
imshow(J2)
title('Full Output View')

入力引数

すべて折りたたむ

入力イメージ。M x N x 3 のトゥルーカラー、または M 行 N 列の 2 次元グレースケール イメージとして指定します。入力イメージは、実数で非スパースでなければなりません。

データ型: single | double | int16 | uint8 | uint16 | logical

魚眼内部カメラ パラメーター。fisheyeIntrinsics オブジェクトとして指定します。

入力イメージで使用する内挿法。'bilinear''nearest'、または 'cubic' として指定します。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: 'ScaleFactor',2 はカメラ ビューのズームを増大させるようにスケール係数を設定します。

出力イメージのサイズ。'same''full'、または 'valid' として指定します。

仮想カメラの遠近感の焦点距離のスケール係数 (ピクセル単位)。スカラーまたは [sx sy] ベクトルとして指定します。x 軸と y 軸を個別にスケーリングするには、ベクトルを指定します。カメラ ビューの遠近感をズームするには、スケールを増加させます。

出力ピクセルの塗りつぶしの値。'FillValues' とスカラーまたは 3 要素のベクトルで構成されるコンマ区切りのペアとして指定します。入力イメージにおける対応する逆変換後の位置が完全に入力イメージの境界外である場合には、出力ピクセルの塗りつぶしの値を使用します。2 次元グレースケール入力イメージを使用する場合、FillValues はスカラーでなければなりません。トゥルーカラー イメージを使用する場合、FillValues はスカラーまたは RGB 値の 3 要素ベクトルに指定できます。

出力引数

すべて折りたたむ

歪み補正後のイメージ。M x N x 3 のトゥルーカラー、または M 行 N 列の 2 次元グレースケール イメージとして返されます。

データ型: single | double | int16 | uint8 | uint16 | logical

仮想カメラの歪み補正後の内部パラメーター。cameraIntrinsics オブジェクトとして返されます。これらの内部パラメーターは、歪み補正後のイメージを生成する遠近投影法を持つカメラ用です。

R2017b で導入