メインコンテンツ

cameraIntrinsics

内部カメラ パラメーターを格納するオブジェクト

説明

カメラの内部キャリブレーション パラメーターに関する情報を格納します (レンズ歪みパラメーターなど)。

作成

説明

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize) は、焦点距離とカメラの主点を含むカメラの内部パラメーター オブジェクトを返します。3 つの入力引数は、それぞれ FocalLengthPrincipalPoint、および ImageSize のプロパティを設定します。

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize,PropertyName=Value) は、名前と値の引数を 1 つ以上使用して追加のプロパティを設定します。たとえば、RadialDistortion=[0 10] は、半径方向のレンズ歪みプロパティをベクトル [0 10] に設定します。

プロパティ

すべて展開する

xy の焦点距離。ピクセル単位の 2 要素ベクトル [fx fy] として格納されます。

fx = F * sx

fy = F * sy

F はワールド単位 (通常はミリメートル単位) の焦点距離です。sxsy はそれぞれ x 方向と y 方向におけるワールド単位あたりのピクセル数を表します。したがって、fxfy はピクセル単位です。

焦点距離 F は画角に影響を与えるため、イメージ内で焦点が合っているように見えるシーンの領域に影響します。被写体の距離が固定されている場合、次のようになります。

  • 焦点距離が短いと画角が広くなり、シーンの広い領域に焦点を合わせてキャプチャできます。被写体とシーンの背景の両方を際立たせます。

  • 焦点距離が長いと画角が狭くなるため、焦点の合うシーンの領域が減ります。被写体がより強調され、キャプチャされる背景の量が制限されます。

cameraIntrinsics オブジェクトを作成した後で FocalLength の値を設定することはできません。

カメラの光学的中心。ピクセル単位の 2 要素ベクトル [cx cy] として格納されます。ベクトルには、カメラの光学的中心の座標が含まれます。

cameraIntrinsics オブジェクトを作成した後で PrincipalPoint の値を設定することはできません。

カメラによって生成されるイメージのサイズ。2 要素ベクトル [mrows ncols] として格納されます。

cameraIntrinsics オブジェクトを作成した後で ImageSize の値を設定することはできません。

半径方向レンズ歪み係数。2 要素、3 要素、または 6 要素のベクトルとして指定します。

  • 2 要素ベクトル — [k1 k2]。

  • 3 要素ベクトル — [k1 k2 k3]。

  • 6 要素ベクトル — [k1 k2 k3 k4 k5 k6]。

半径方向歪みとは、主点から伸びる放射状の線に沿ったイメージ ポイントの変位です。

  • イメージ ポイントが主点から離れると (半径方向の正の変位)、イメージの倍率が下がり、イメージに糸巻き型歪みが出現する。

  • イメージ ポイントが主点に向かって移動すると (半径方向の負の変位)、イメージの倍率が上がり、イメージに樽状の歪みが出現する。

Three grids: one with pincushion distortion (positive radial displacement), one with no distortion, and one with barrel distortion (negative radial displacement)

このカメラ パラメーター オブジェクトは、(xdistorted, ydistorted) として表される点の半径方向歪み位置を計算します。

xdistorted=x(1+k1*r2+k2*r4+k3*r61+k4*r2+k5*r4+k6*r6)

ydistorted=y(1+k1*r2+k2*r4+k3*r61+k4*r2+k5*r4+k6*r6)

xy は、光学的中心を原点とするワールド単位の正規化されたイメージ座標における、歪み補正されたイメージ ポイントです。
r2 = x2 + y2
k1k2、…、k6 はレンズの半径方向歪み係数です。通常、係数は 2 つで十分です。k3、…、k6 は、広角レンズでのみ必要です。

円周方向歪み係数。2 要素ベクトル [p1 p2] として指定します。円周方向の歪みは、レンズとイメージ平面が平行にならない場合に生じます。

Comparison of zero tangential distortion and tangential distortion

カメラ パラメーター オブジェクトは、点の円周方向歪み位置を計算します。歪んだ点は (xdistorted, ydistorted) として次のように表されます。

xdistorted = x + [2 * p1 * x * y + p2 * (r2 + 2 * x2)]

ydistorted = y + [p1 * (r2 + 2*y2) + 2 * p2 * x * y]

xy は歪み補正後のピクセル位置
p1 および p2 はレンズの円周方向歪み係数
r2 = x2 + y2
歪み補正後のピクセル位置は、光学的中心を原点とする正規化されたイメージ座標に示されます。この座標はワールド単位で表されます。

カメラの軸のせん断。数値スカラーとして指定します。x 軸と y 軸が厳密に直交する場合、せん断は 0 でなければなりません。

この プロパティ は読み取り専用です。

カメラの内部パラメーターの行列。3 行 3 列の行列として指定します。行列の形式は次のとおりです。

[fxscx0fycy001]

座標 [cx cy] はピクセル単位の光学的中心 (主点) を表します。x 軸と y 軸が厳密に直交する場合、せん断パラメーター s0 に等しくなります。

fx = F*sx

fy = F*sy

F は焦点距離のワールド単位で、通常はミリメートル単位で表されます。
sxsy は、それぞれ xy 方向のワールド単位あたりのピクセル数です。
fxfy はピクセル単位で表されます。

すべて折りたたむ

レンズ歪みやせん断のないカメラ パラメーターを定義します。

焦点距離と主点をピクセル単位で指定します。

focalLength    = [800 800]; 
principalPoint = [320 240];
imageSize      = [480 640];

カメラの内部パラメーター オブジェクトを作成します。

intrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize)
intrinsics = 
  cameraIntrinsics with properties:

             FocalLength: [800 800]
          PrincipalPoint: [320 240]
               ImageSize: [480 640]
        RadialDistortion: [0 0]
    TangentialDistortion: [0 0]
                    Skew: 0
                       K: [3×3 double]

拡張機能

すべて展開する

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2017a で導入

すべて展開する