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:
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:
The pinhole projection coordinates of P is [a; b] where
Fisheye distortion:
The distorted point coordinates are [x'; y'] where
Finally, conversion into pixel coordinates: The final pixel coordinates vector [u; v] where:
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 浮動小数点型カメラ内部行列の出力![]() |
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 | 入出力 第一カメラ固有マトリクス:![]() ![]() |
D1 | 歪曲係数の入出力ベクトル![]() |
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 | 出力![]() |
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> です. |