| OpenCV 4.5.3(日本語機械翻訳)
 | 
| 名前空間 | |
| namespace | cv::fisheye | 
| この名前空間のメソッドは、いわゆる魚眼カメラモデルを使用しています。 | |
| 関数 | |
| CV_EXPORTS void | cv::fisheye::projectPoints (InputArray objectPoints, OutputArray imagePoints, const Affine3d &affine, InputArray K, InputArray D, double alpha=0, OutputArray jacobian=noArray()) | 
| 魚眼モデルを用いたプロジェクトポイント[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::projectPoints (InputArray objectPoints, OutputArray imagePoints, InputArray rvec, InputArray tvec, InputArray K, InputArray D, double alpha=0, OutputArray jacobian=noArray()) | 
| CV_EXPORTS_W void | cv::fisheye::distortPoints (InputArray undistorted, OutputArray distorted, InputArray K, InputArray D, double alpha=0) | 
| 魚眼モデルを使って2次元の点を歪めます。[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::undistortPoints (InputArray distorted, OutputArray undistorted, InputArray K, InputArray D, InputArray R=noArray(), InputArray P=noArray()) | 
| 魚眼レンズを用いた2次元点の歪みの補正[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::initUndistortRectifyMap (InputArray K, InputArray D, InputArray R, InputArray P, const cv::Size &size, int m1type, OutputArray map1, OutputArray map2) | 
| による画像変換に対して,歪み補正マップと平行化マップを計算します.remap. D が空の場合は,ゼロディストーションが利用され,R または P が空の場合は,単位行列が利用されます.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::undistortImage (InputArray distorted, OutputArray undistorted, InputArray K, InputArray D, InputArray Knew=cv::noArray(), const Size &new_size=Size()) | 
| 魚眼レンズの歪みを補正するために画像を変換します。[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::estimateNewCameraMatrixForUndistortRectify (InputArray K, InputArray D, const Size &image_size, InputArray R, OutputArray P, double balance=0.0, const Size &new_size=Size(), double fov_scale=1.0) | 
| 歪み補正や平行化のために,新しいカメラ固有の行列を推定します.[【詳解】(英語] | |
| CV_EXPORTS_W double | cv::fisheye::calibrate (InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, const Size &image_size, InputOutputArray K, InputOutputArray D, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags=0, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON)) | 
| カメラのキャリブレーションを行います.[【詳解】(英語] | |
| CV_EXPORTS_W void | cv::fisheye::stereoRectify (InputArray K1, InputArray D1, InputArray K2, InputArray D2, const Size &imageSize, InputArray R, InputArray tvec, OutputArray R1, OutputArray R2, OutputArray P1, OutputArray P2, OutputArray Q, int flags, const Size &newImageSize=Size(), double balance=0.0, double fov_scale=1.0) | 
| 魚眼カメラモデルのステレオ平行化[【詳解】(英語] | |
| CV_EXPORTS_W double | cv::fisheye::stereoCalibrate (InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2, InputOutputArray K1, InputOutputArray D1, InputOutputArray K2, InputOutputArray D2, Size imageSize, OutputArray R, OutputArray T, int flags=fisheye::CALIB_FIX_INTRINSIC, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON)) | 
| ステレオキャリブレーションを行う[【詳解】(英語] | |
Definitions: Let P be a point in 3D of coordinates X in the world reference frame (stored in the matrix X) The coordinate vector of P in the camera reference frame is:
![\[Xc = R X + T\]](form_74.png) 
where R is the rotation matrix corresponding to the rotation vector om: R = rodrigues(om); call x, y and z the 3 coordinates of Xc:
![\[x = Xc_1 \\ y = Xc_2 \\ z = Xc_3\]](form_75.png) 
The pinhole projection coordinates of P is [a; b] where
![\[a = x / z \ and \ b = y / z \\ r^2 = a^2 + b^2 \\ \theta = atan(r)\]](form_76.png) 
Fisheye distortion:
![\[\theta_d = \theta (1 + k_1 \theta^2 + k_2 \theta^4 + k_3 \theta^6 + k_4 \theta^8)\]](form_77.png) 
The distorted point coordinates are [x'; y'] where
![\[x' = (\theta_d / r) a \\ y' = (\theta_d / r) b \]](form_78.png) 
Finally, conversion into pixel coordinates: The final pixel coordinates vector [u; v] where:
![\[u = f_x (x' + \alpha y') + c_x \\ v = f_y y' + c_y\]](form_79.png) 
| CV_EXPORTS_W double cv::fisheye::calibrate | ( | InputArrayOfArrays | objectPoints, | 
| InputArrayOfArrays | imagePoints, | ||
| const Size & | image_size, | ||
| InputOutputArray | K, | ||
| InputOutputArray | D, | ||
| OutputArrayOfArrays | rvecs, | ||
| OutputArrayOfArrays | tvecs, | ||
| int | flags
= 0, | ||
| TermCriteria | criteria
= 
TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON) | ||
| ) | 
カメラのキャリブレーションを行います.
| objectPoints | キャリブレーションパターン座標空間における,キャリブレーションパターンポイントのベクトル. | 
| imagePoints | imagePoints.size() と objectPoints.size() および imagePoints[i].size() は,各 i について objectPoints[i].size() と等しくなければならない. | 
| image_size | 画像のサイズは,カメラ固有の行列を初期化するためにのみ利用されます. | 
| K | 3x3 浮動小数点型カメラ内部行列の出力  . fisheye::CALIB_USE_INTRINSIC_GUESS が指定された場合,この関数を呼び出す前に fx, fy, cx, cy の一部または全部を初期化する必要があります. | 
| D | 歪み係数の出力ベクトル  . | 
| rvecs | 各パターンビューに対して推定された回転ベクトル(Rodrigues参照)の出力ベクトル.つまり,各k番目の回転ベクトルは,対応するk番目の並進ベクトル(次の出力パラメータの説明を参照)とともに,キャリブレーションパターンを(オブジェクトポイントが指定されている)モデル座標空間からワールド座標空間,つまり,k番目のパターンビュー(k=0...)におけるキャリブレーションパターンの実位置へと導く.M-1). | 
| tvecs | パターンビューごとに推定された並進ベクトルの出力ベクトル. | 
| flags | 0または以下の値の組み合わせとなる異なるフラグ。 
 | 
| criteria | 反復最適化アルゴリズムの終了基準. | 
| CV_EXPORTS_W void cv::fisheye::distortPoints | ( | InputArray | undistorted, | 
| OutputArray | distorted, | ||
| InputArray | K, | ||
| InputArray | D, | ||
| double | alpha
= 0 | ||
| ) | 
魚眼モデルを使って2次元の点を歪めます。
| undistorted | オブジェクトポイントの配列,1xN/Nx1 2-channel (または vector<Point2f> ),ここで N はビュー内のポイント数を表します. | 
| K | カメラ固有の行列  . | 
| D | 入力 歪み係数のベクトル  . | 
| alpha | スキュー係数. | 
| distorted | 出力は,1xN/Nx1 2チャンネルの画像点の配列,または vector<Point2f> です. | 
この関数は,歪んでいない点のカメラ固有の行列を,恒等式と仮定していることに注意してください.つまり,歪んでいない点を元に戻したい場合はfisheye::undistortPointsで歪んでいない点を元に戻したい場合は,それらの点に以下を掛けなければいけません .
.
| CV_EXPORTS_W void cv::fisheye::estimateNewCameraMatrixForUndistortRectify | ( | InputArray | K, | 
| InputArray | D, | ||
| const Size & | image_size, | ||
| InputArray | R, | ||
| OutputArray | P, | ||
| double | balance
= 0.0, | ||
| const Size & | new_size
= 
Size(), | ||
| double | fov_scale
= 1.0 | ||
| ) | 
歪み補正や平行化のために,新しいカメラ固有の行列を推定します.
| K | カメラ固有の行列  . | 
| image_size | 画像のサイズ | 
| D | 入力 歪み係数のベクトル  . | 
| R | オブジェクト空間における平行化変換:3x3 1チャンネル,またはベクトル.3x1/1x3 1ch または 1x1 3ch | 
| P | 新しいカメラ固有の行列(3x3)または新しい投影行列(3x4)。 | 
| balance | 新しい焦点距離を、最小焦点距離から最大焦点距離の間で設定します。バランスは、[0, 1]の範囲です。 | 
| new_size | 新しいサイズ | 
| fov_scale | 新しい焦点距離の除数. | 
| CV_EXPORTS_W void cv::fisheye::initUndistortRectifyMap | ( | InputArray | K, | 
| InputArray | D, | ||
| InputArray | R, | ||
| InputArray | P, | ||
| const cv::Size & | size, | ||
| int | m1type, | ||
| OutputArray | map1, | ||
| OutputArray | map2 | ||
| ) | 
による画像変換に対して,歪み補正マップと平行化マップを計算します.remap. D が空の場合は,ゼロディストーションが利用され,R または P が空の場合は,単位行列が利用されます.
| K | カメラ固有の行列  . | 
| D | 入力 歪み係数のベクトル  . | 
| R | オブジェクト空間における平行化変換:3x3 1チャンネル,またはベクトル.3x1/1x3 1ch または 1x1 3ch | 
| P | 新しいカメラ固有の行列(3x3)または新しい投影行列(3x4)。 | 
| size | 歪みのない画像サイズ. | 
| m1type | 最初に出力されるマップの種類は, CV_32FC1 または CV_16SC2 です.参照convertMapsを参照してください。 | 
| map1 | 第1の出力マップ. | 
| map2 | 2番目の出力マップ. | 
| CV_EXPORTS void cv::fisheye::projectPoints | ( | InputArray | objectPoints, | 
| OutputArray | imagePoints, | ||
| const Affine3d & | affine, | ||
| InputArray | K, | ||
| InputArray | D, | ||
| double | alpha
= 0, | ||
| OutputArray | jacobian
= noArray() | ||
| ) | 
魚眼モデルを用いたプロジェクトポイント
| objectPoints | 1xN/Nx1 3チャンネルのオブジェクトポイントの配列(または vector<Point3f> ). | 
| imagePoints | 2xN/Nx2 の 1 チャンネル,または 1xN/Nx1 の 2 チャンネル,あるいは vector<Point2f> で表される,画像上の点の配列を出力します. | 
| affine | |
| K | カメラ固有の行列  . | 
| D | 入力 歪み係数のベクトル  . | 
| alpha | スキュー係数. | 
| jacobian | オプションで,焦点距離の成分に対する画像点の微分,主点の座標,歪み係数,回転ベクトル,並進ベクトル,スキューに関する2Nx15ヤコビ行列を出力します.従来のインターフェースでは,ヤコビ行列の異なる成分が,異なる出力パラメータによって返されていました. | 
この関数は,カメラの内部および外部パラメータを与えて,3次元点の画像平面への投影を求めます.また,オプションとして,(すべての入力パラメータの関数としての)画像点座標の偏微分の行列であるヤコビアンを,特定のパラメータ(内在および外在)に関して計算します.
| CV_EXPORTS_W void cv::fisheye::projectPoints | ( | InputArray | objectPoints, | 
| OutputArray | imagePoints, | ||
| InputArray | rvec, | ||
| InputArray | tvec, | ||
| InputArray | K, | ||
| InputArray | D, | ||
| double | alpha
= 0, | ||
| OutputArray | jacobian
= noArray() | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
| CV_EXPORTS_W double cv::fisheye::stereoCalibrate | ( | InputArrayOfArrays | objectPoints, | 
| InputArrayOfArrays | imagePoints1, | ||
| InputArrayOfArrays | imagePoints2, | ||
| InputOutputArray | K1, | ||
| InputOutputArray | D1, | ||
| InputOutputArray | K2, | ||
| InputOutputArray | D2, | ||
| Size | imageSize, | ||
| OutputArray | R, | ||
| OutputArray | T, | ||
| int | flags
= fisheye::CALIB_FIX_INTRINSIC, | ||
| TermCriteria | criteria
= 
TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON) | ||
| ) | 
ステレオキャリブレーションを行う
| objectPoints | キャリブレーションパターンの点のベクトル。 | 
| imagePoints1 | 第一カメラで観測されたキャリブレーションパターン点の投影のベクトル | 
| imagePoints2 | 第2カメラで観測されたキャリブレーションパターン点の投影結果のベクトル。 | 
| K1 | 入出力 第一カメラ固有マトリクス:  ,  . fisheye::CALIB_USE_INTRINSIC_GUESS , fisheye::CALIB_FIX_INTRINSIC のいずれかが指定された場合は,行列成分の一部または全部を初期化しなければならない。 | 
| D1 | 歪曲係数の入出力ベクトル  4つの要素の | 
| K2 | 入出力される2番目のカメラの内部行列.このパラメータは,K1 と同様です. | 
| D2 | 入力/出力される第2カメラのレンズ歪み係数.パラメータは,D1 と同様です. | 
| imageSize | カメラ固有の行列を初期化するためだけに使われる画像のサイズ. | 
| R | 第1カメラと第2カメラの座標系間の回転行列の出力. | 
| T | カメラの座標系間の並進ベクトルを出力します. | 
| flags | 0または以下の値の組み合わせとなる異なるフラグ。 
 | 
| criteria | 反復最適化アルゴリズムの終了基準. | 
| CV_EXPORTS_W void cv::fisheye::stereoRectify | ( | InputArray | K1, | 
| InputArray | D1, | ||
| InputArray | K2, | ||
| InputArray | D2, | ||
| const Size & | imageSize, | ||
| InputArray | R, | ||
| InputArray | tvec, | ||
| OutputArray | R1, | ||
| OutputArray | R2, | ||
| OutputArray | P1, | ||
| OutputArray | P2, | ||
| OutputArray | Q, | ||
| int | flags, | ||
| const Size & | newImageSize
= 
Size(), | ||
| double | balance
= 0.0, | ||
| double | fov_scale
= 1.0 | ||
| ) | 
魚眼カメラモデルのステレオ平行化
| K1 | 1台目のカメラの固有マトリクス. | 
| D1 | 第1カメラの歪みパラメータ. | 
| K2 | 第2カメラの固有マトリクス. | 
| D2 | 第二カメラの歪みパラメータ | 
| imageSize | ステレオキャリブレーションに使われる画像のサイズ. | 
| R | 1 台目と 2 台目のカメラの座標系間の回転行列 | 
| tvec | カメラの座標系間の移動ベクトル | 
| R1 | 1台目のカメラに対する3x3の平行化変換(回転行列)の出力 | 
| R2 | 2 台目のカメラに対する 3x3 の平行化変換(回転行列)の出力 | 
| P1 | 1台目のカメラの新しい(平行化された)座標系における3x4の射影行列を出力。 | 
| P2 | 2台目のカメラの新しい(平行化された)座標系における3x4の投影行列を出力する. | 
| Q | 出力  視差-深度マッピング行列( reprojectImageTo3D 参照). | 
| flags | ゼロ,あるいは fisheye::CALIB_ZERO_DISPARITY のいずれかの操作フラグ.このフラグがセットされている場合,この関数は各カメラの主点が,平行化されたビューにおいて同じピクセル座標になるようにします.また,このフラグがセットされていない場合でも,有用な画像領域を最大化するために,(エピポーラ線の向きに応じて)水平または垂直方向に画像を移動させることがあります. | 
| newImageSize | 整形後の新しい画像の解像度。には,同じサイズを渡す必要があります.initUndistortRectifyMap(OpenCV samples ディレクトリにある stereo_calib.cpp サンプルを参照してください).(0,0) を渡した場合(デフォルト),これは元の imageSize に設定されます.これを大きな値に設定すると,特に大きな半径方向の歪みがある場合に,元の画像のディテールを保持するのに役立ちます. | 
| balance | 新しい焦点距離を、最小焦点距離から最大焦点距離の間で設定します。バランスは、[0, 1]の範囲です。 | 
| fov_scale | 新しい焦点距離の除数. | 
| CV_EXPORTS_W void cv::fisheye::undistortImage | ( | InputArray | distorted, | 
| OutputArray | undistorted, | ||
| InputArray | K, | ||
| InputArray | D, | ||
| InputArray | Knew
= cv::noArray(), | ||
| const Size & | new_size
= 
Size() | ||
| ) | 
魚眼レンズの歪みを補正するために画像を変換します。
| distorted | 魚眼レンズの歪みがある画像を出力します。 | 
| undistorted | 魚眼レンズの歪みが補正された出力画像。 | 
| K | カメラ固有の行列  . | 
| D | 入力 歪み係数のベクトル  . | 
| Knew | 歪んだ画像のカメラ固有の行列.デフォルトでは単位行列ですが、追加で別の行列を使って結果を拡大・縮小することができます。 | 
| new_size | 新しいサイズ | 
この関数は,半径方向と接線方向のレンズ歪みを補正するために,画像を変換します.
この関数は,単純に以下の組み合わせですfisheye::initUndistortRectifyMap(単一のRを持つ) とremap(バイリニア補間) を組み合わせたものです.実行される変換の詳細については,前者の関数を参照してください。
以下に,undistortImage の結果を示します.
写真a)とb)は、ほぼ同じです。しかし、画像の中心から離れた場所にある画像の点を考えてみると、画像a)ではこれらの点が歪んでいることがわかります。
 
| CV_EXPORTS_W void cv::fisheye::undistortPoints | ( | InputArray | distorted, | 
| OutputArray | undistorted, | ||
| InputArray | K, | ||
| InputArray | D, | ||
| InputArray | R
= noArray(), | ||
| InputArray | P
= noArray() | ||
| ) | 
魚眼レンズを用いた2次元点の歪みの補正
| distorted | オブジェクトポイントの配列,1xN/Nx1 2-channel (または vector<Point2f> ),ここで N はビュー内のポイント数を表します. | 
| K | カメラ固有の行列  . | 
| D | 入力 歪み係数のベクトル  . | 
| R | オブジェクト空間における平行化変換:3x3 1チャンネル,またはベクトル.3x1/1x3 1ch または 1x1 3ch | 
| P | 新しいカメラ固有の行列(3x3)または新しい投影行列(3x4)。 | 
| undistorted | 出力は,1xN/Nx1 2チャンネルの画像点の配列,または vector<Point2f> です. |