OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
3次元再構成のためのカスタムキャリブレーションパターン

詳細説明

名前空間

namespace  cv::omnidir::internal
 

クラス

class  cv::ccalib::CustomPattern
 
class  cv::multicalib::MultiCameraCalibration
 ピンホールカメラと全方位カメラをサポートする、複数カメラのキャリブレーション用クラス。全方位カメラモデルについては、ccalib モジュールの omnidir.hpp を参照。まず各カメラを個別にキャリブレーションし、その後、外部パラメータを精緻化するためにバンドル調整に似た最適化を適用する。今のところ、キャリブレーション用には「ランダム」パターンのみをサポートしている。詳細は ccalib モジュールの randomPattern.hpp を参照。使用する画像は "cameraIdx-timestamp.*" の形式で名前を付ける必要がある。同じ timestamp を持つ複数の画像は、それらが撮影された同一のパターンであることを意味する。cameraIdx は 0 から始める必要がある。詳細...
 
class  cv::randpattern::RandomPatternCornerFinder
 キャリブレーションに使用できる、「ランダム」パターンの特徴点と対応するワールド座標系での3D点を見つけるためのクラス。パターンが部分的に隠れている場合や、複数カメラのキャリブレーションでパターンの一部しか観測できない場合に有用である。パターンは、このファイルで説明されている RandomPatternGenerator クラスによって生成できる。詳細...
 
class  cv::randpattern::RandomPatternGenerator
 

マクロ定義

#define HEAD   -1
 
#define INVALID   -2
 

列挙型

enum  {
  cv::omnidir::CALIB_USE_GUESS = 1 ,
  cv::omnidir::CALIB_FIX_SKEW = 2 ,
  cv::omnidir::CALIB_FIX_K1 = 4 ,
  cv::omnidir::CALIB_FIX_K2 = 8 ,
  cv::omnidir::CALIB_FIX_P1 = 16 ,
  cv::omnidir::CALIB_FIX_P2 = 32 ,
  cv::omnidir::CALIB_FIX_XI = 64 ,
  cv::omnidir::CALIB_FIX_GAMMA = 128 ,
  cv::omnidir::CALIB_FIX_CENTER = 256
}
 
enum  {
  cv::omnidir::RECTIFY_PERSPECTIVE = 1 ,
  cv::omnidir::RECTIFY_CYLINDRICAL = 2 ,
  cv::omnidir::RECTIFY_LONGLATI = 3 ,
  cv::omnidir::RECTIFY_STEREOGRAPHIC = 4
}
 
enum  {
  cv::omnidir::XYZRGB = 1 ,
  cv::omnidir::XYZ = 2
}
 

関数

double cv::omnidir::calibrate (InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size size, InputOutputArray K, InputOutputArray xi, InputOutputArray D, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags, TermCriteria criteria, OutputArray idx=noArray())
 全方位カメラのキャリブレーションを実行する。出力のデフォルトのビット深度は CV_64F。
 
void cv::omnidir::initUndistortRectifyMap (InputArray K, InputArray D, InputArray xi, InputArray R, InputArray P, const cv::Size &size, int m1type, OutputArray map1, OutputArray map2, int flags)
 回転 R による全方位カメラ画像変換のための歪み補正マップと平行化マップを計算する。cv::remap()で使用される2つのマップを出力する。D が空の場合はゼロ歪みが使用され、R または P が空の場合は単位行列が使用される。
 
void cv::omnidir::projectPoints (InputArray objectPoints, OutputArray imagePoints, const Affine3d &affine, InputArray K, double xi, InputArray D, OutputArray jacobian=noArray())
 
void cv::omnidir::projectPoints (InputArray objectPoints, OutputArray imagePoints, InputArray rvec, InputArray tvec, InputArray K, double xi, InputArray D, OutputArray jacobian=noArray())
 CMei のモデルを用いて全方位カメラに対する点を投影する。
 
double cv::omnidir::stereoCalibrate (InputOutputArrayOfArrays objectPoints, InputOutputArrayOfArrays imagePoints1, InputOutputArrayOfArrays imagePoints2, const Size &imageSize1, const Size &imageSize2, InputOutputArray K1, InputOutputArray xi1, InputOutputArray D1, InputOutputArray K2, InputOutputArray xi2, InputOutputArray D2, OutputArray rvec, OutputArray tvec, OutputArrayOfArrays rvecsL, OutputArrayOfArrays tvecsL, int flags, TermCriteria criteria, OutputArray idx=noArray())
 全方位カメラモデルのステレオキャリブレーション。2台のカメラの内部パラメータと、2台のカメラ間の外部パラメータを計算する。出力のデフォルトのビット深度は CV_64F。
 
void cv::omnidir::stereoReconstruct (InputArray image1, InputArray image2, InputArray K1, InputArray D1, InputArray xi1, InputArray K2, InputArray D2, InputArray xi2, InputArray R, InputArray T, int flag, int numDisparities, int SADWindowSize, OutputArray disparity, OutputArray image1Rec, OutputArray image2Rec, const Size &newSize=Size(), InputArray Knew=cv::noArray(), OutputArray pointCloud=cv::noArray(), int pointType=XYZRGB)
 1組の画像からのステレオ3次元再構成。
 
void cv::omnidir::stereoRectify (InputArray R, InputArray T, OutputArray R1, OutputArray R2)
 全方位カメラモデルのステレオ平行化。2台のカメラの平行化回転を計算する。
 
void cv::omnidir::undistortImage (InputArray distorted, OutputArray undistorted, InputArray K, InputArray D, InputArray xi, int flags, InputArray Knew=cv::noArray(), const Size &new_size=Size(), InputArray R=Mat::eye(3, 3, CV_64F))
 全方位画像を透視画像に歪み補正する。
 
void cv::omnidir::undistortPoints (InputArray distorted, OutputArray undistorted, InputArray K, InputArray D, InputArray xi, InputArray R)
 CMei のモデルを用いて全方位カメラの2D画像点を歪み補正する。
 

マクロ定義詳解

◆ HEAD

#define HEAD   -1

◆ INVALID

#define INVALID   -2

列挙型詳解

◆ anonymous enum

anonymous enum

#include <opencv2/ccalib/omnidir.hpp>

列挙値
CALIB_USE_GUESS 
Python: cv.omnidir.CALIB_USE_GUESS
CALIB_FIX_SKEW 
Python: cv.omnidir.CALIB_FIX_SKEW
CALIB_FIX_K1 
Python: cv.omnidir.CALIB_FIX_K1
CALIB_FIX_K2 
Python: cv.omnidir.CALIB_FIX_K2
CALIB_FIX_P1 
Python: cv.omnidir.CALIB_FIX_P1
CALIB_FIX_P2 
Python: cv.omnidir.CALIB_FIX_P2
CALIB_FIX_XI 
Python: cv.omnidir.CALIB_FIX_XI
CALIB_FIX_GAMMA 
Python: cv.omnidir.CALIB_FIX_GAMMA
CALIB_FIX_CENTER 
Python: cv.omnidir.CALIB_FIX_CENTER

◆ anonymous enum

anonymous enum

#include <opencv2/ccalib/omnidir.hpp>

列挙値
RECTIFY_PERSPECTIVE 
Python: cv.omnidir.RECTIFY_PERSPECTIVE
RECTIFY_CYLINDRICAL 
Python: cv.omnidir.RECTIFY_CYLINDRICAL
RECTIFY_LONGLATI 
Python: cv.omnidir.RECTIFY_LONGLATI
RECTIFY_STEREOGRAPHIC 
Python: cv.omnidir.RECTIFY_STEREOGRAPHIC

◆ anonymous enum

anonymous enum

#include <opencv2/ccalib/omnidir.hpp>

列挙値
XYZRGB 
Python: cv.omnidir.XYZRGB
XYZ 
Python: cv.omnidir.XYZ

関数詳解

◆ calibrate()

double cv::omnidir::calibrate ( InputArrayOfArrays objectPoints,
InputArrayOfArrays imagePoints,
Size size,
InputOutputArray K,
InputOutputArray xi,
InputOutputArray D,
OutputArrayOfArrays rvecs,
OutputArrayOfArrays tvecs,
int flags,
TermCriteria criteria,
OutputArray idx = noArray() )
Python:
cv.omnidir.calibrate(objectPoints, imagePoints, size, K, xi, D, flags, criteria[, rvecs[, tvecs[, idx]]]) -> retval, K, xi, D, rvecs, tvecs, idx

#include <opencv2/ccalib/omnidir.hpp>

全方位カメラのキャリブレーションを実行する。出力のデフォルトのビット深度は CV_64F。

引数
objectPointsワールド(パターン)座標系における Vec3f のオブジェクト点のベクトルのベクトル。サイズ 1xN/Nx1 で型 CV_32FC3 のMatのベクトルでもよい。ビット深度 64_F のデータも受け付けられる。
imagePointsobjectPointsに対応するVec2f画像点のベクトルのベクトル。objectPointsと同じサイズ・同じ型でなければならない。
sizeキャリブレーション画像の画像サイズ。
Kキャリブレーションされた出力カメラ行列。
xiCMeiのモデル用の出力パラメータxi
D出力歪み係数 \((k_1, k_2, p_1, p_2)\)
rvecs各キャリブレーション画像に対する出力回転
tvecs各キャリブレーション画像に対する出力並進
flagsキャリブレーションを制御するフラグ
criteria最適化の終了条件
idx初期化を通過し、実際にキャリブレーションで使用される画像のインデックス。したがってrvecsのサイズはidx.total()と同じである。

◆ initUndistortRectifyMap()

void cv::omnidir::initUndistortRectifyMap ( InputArray K,
InputArray D,
InputArray xi,
InputArray R,
InputArray P,
const cv::Size & size,
int m1type,
OutputArray map1,
OutputArray map2,
int flags )
Python:
cv.omnidir.initUndistortRectifyMap(K, D, xi, R, P, size, m1type, flags[, map1[, map2]]) -> map1, map2

#include <opencv2/ccalib/omnidir.hpp>

回転 R による全方位カメラ画像変換のための歪み補正マップと平行化マップを計算する。cv::remap()で使用される2つのマップを出力する。D が空の場合はゼロ歪みが使用され、R または P が空の場合は単位行列が使用される。

引数
Kカメラ行列 \(K = \vecthreethree{f_x}{s}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\)、ビット深度はCV_32FまたはCV_64F
D入力歪み係数のベクトル \((k_1, k_2, p_1, p_2)\)、ビット深度はCV_32FまたはCV_64F
xiCMeiのモデル用のパラメータxi
R元空間とオブジェクト空間の間の回転変換: 3x3 1チャンネル、またはベクトル: 3x1/1x3、ビット深度はCV_32FまたはCV_64F
P新しいカメラ行列(3x3)または新しい射影行列(3x4)
size歪み補正後の画像サイズ。
m1type1つ目の出力マップの型で、CV_32FC1またはCV_16SC2を指定できる。詳細はconvertMaps()を参照。
map11つ目の出力マップ。
map22つ目の出力マップ。
flagsrectification(平行化)の種類を示すフラグ。RECTIFY_PERSPECTIVE, RECTIFY_CYLINDRICAL, RECTIFY_LONGLATI, RECTIFY_STEREOGRAPHIC がサポートされている。

◆ projectPoints() [1/2]

void cv::omnidir::projectPoints ( InputArray objectPoints,
OutputArray imagePoints,
const Affine3d & affine,
InputArray K,
double xi,
InputArray D,
OutputArray jacobian = noArray() )
Python:
cv.omnidir.projectPoints(objectPoints, rvec, tvec, K, xi, D[, imagePoints[, jacobian]]) -> imagePoints, jacobian

#include <opencv2/ccalib/omnidir.hpp>

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ projectPoints() [2/2]

void cv::omnidir::projectPoints ( InputArray objectPoints,
OutputArray imagePoints,
InputArray rvec,
InputArray tvec,
InputArray K,
double xi,
InputArray D,
OutputArray jacobian = noArray() )
Python:
cv.omnidir.projectPoints(objectPoints, rvec, tvec, K, xi, D[, imagePoints[, jacobian]]) -> imagePoints, jacobian

#include <opencv2/ccalib/omnidir.hpp>

CMei のモデルを用いて全方位カメラに対する点を投影する。

このモジュールは OpenCV の GSoC 2015 プロジェクトとして採択され、Baisheng Lai によって作成され、Bo Li が指導した。

引数
objectPointsワールド座標系におけるオブジェクト点。Vec3f のベクトルのベクトル、または型 CV_32F の 1xN/Nx1 3チャンネルのMatで、N は点の数である。64F も受け付けられる。
imagePoints画像点の出力配列。Vec2f のベクトルのベクトル、または型 CV_32F で 1xN/Nx1 の2チャンネル。64F も使用可能。
rvecワールド座標系とカメラ座標系の間の回転のベクトル。すなわち om。
tvecパターン座標系とカメラ座標系の間の並進のベクトル。
Kカメラ行列 \(K = \vecthreethree{f_x}{s}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\)。
D歪み係数の入力ベクトル \((k_1, k_2, p_1, p_2)\)。
xiCMeiのモデル用のパラメータxi
jacobian省略可能な、型 CV_64F の 2Nx16 のヤコビ行列出力。画像ピクセル点の、\(om, T, f_x, f_y, s, c_x, c_y, xi, k_1, k_2, p_1, p_2\) を含む各引数に関する微分を格納する。この行列は最適化によるキャリブレーションで使用される。

この関数は、内部および外部パラメータを引数として、ワールド座標系の物体3D点を画像ピクセルに投影する。また、副産物として、画像ピクセル点の内部および外部パラメータに関する微分を含むヤコビ行列を省略可能で計算する。

◆ stereoCalibrate()

double cv::omnidir::stereoCalibrate ( InputOutputArrayOfArrays objectPoints,
InputOutputArrayOfArrays imagePoints1,
InputOutputArrayOfArrays imagePoints2,
const Size & imageSize1,
const Size & imageSize2,
InputOutputArray K1,
InputOutputArray xi1,
InputOutputArray D1,
InputOutputArray K2,
InputOutputArray xi2,
InputOutputArray D2,
OutputArray rvec,
OutputArray tvec,
OutputArrayOfArrays rvecsL,
OutputArrayOfArrays tvecsL,
int flags,
TermCriteria criteria,
OutputArray idx = noArray() )
Python:
cv.omnidir.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, imageSize1, imageSize2, K1, xi1, D1, K2, xi2, D2, flags, criteria[, rvec[, tvec[, rvecsL[, tvecsL[, idx]]]]]) -> retval, objectPoints, imagePoints1, imagePoints2, K1, xi1, D1, K2, xi2, D2, rvec, tvec, rvecsL, tvecsL, idx

#include <opencv2/ccalib/omnidir.hpp>

全方位カメラモデルのステレオキャリブレーション。2台のカメラの内部パラメータと、2台のカメラ間の外部パラメータを計算する。出力のデフォルトのビット深度は CV_64F。

引数
objectPointsワールド(パターン)座標系におけるオブジェクト点。型は vector<vector<Vec3f> > である。サイズ 1xN/Nx1 で型 CV_32FC3 のMatのベクトルでもよい。ビット深度 64_F のデータも受け付けられる。
imagePoints11台目のカメラに対応する画像点。型は vector<vector<Vec2f> >。objectPoints と同じサイズかつ同じ型でなければならない。
imagePoints22台目のカメラに対応する画像点。型は vector<vector<Vec2f> >。objectPoints と同じサイズかつ同じ型でなければならない。
imageSize11台目のカメラのキャリブレーション画像の画像サイズ。
imageSize22台目のカメラのキャリブレーション画像の画像サイズ。
K11台目のカメラの出力カメラ行列。
xi11台目のカメラに対する、Mei のモデルのパラメータ xi の出力
D11台目のカメラに対する、出力歪みパラメータ \((k_1, k_2, p_1, p_2)\)
K21台目のカメラの出力カメラ行列。
xi22台目のカメラに対する、CMei のモデルのパラメータ xi の出力
D22台目のカメラに対する、出力歪みパラメータ \((k_1, k_2, p_1, p_2)\)
rvec1台目と2台目のカメラの間の出力回転
tvec1台目と2台目のカメラの間の出力並進
rvecsL1台目のカメラの各画像に対する出力回転
tvecsL1台目のカメラの各画像に対する出力並進
flagsstereoCalibrate を制御するフラグ
criteria最適化の終了条件
idx初期化を通過し、実際にキャリブレーションで使用される画像ペアのインデックス。したがって rvecs のサイズは idx.total() と同じである。@

◆ stereoReconstruct()

void cv::omnidir::stereoReconstruct ( InputArray image1,
InputArray image2,
InputArray K1,
InputArray D1,
InputArray xi1,
InputArray K2,
InputArray D2,
InputArray xi2,
InputArray R,
InputArray T,
int flag,
int numDisparities,
int SADWindowSize,
OutputArray disparity,
OutputArray image1Rec,
OutputArray image2Rec,
const Size & newSize = Size(),
InputArray Knew = cv::noArray(),
OutputArray pointCloud = cv::noArray(),
int pointType = XYZRGB )
Python:
cv.omnidir.stereoReconstruct(image1, image2, K1, D1, xi1, K2, D2, xi2, R, T, flag, numDisparities, SADWindowSize[, disparity[, image1Rec[, image2Rec[, newSize[, Knew[, pointCloud[, pointType]]]]]]]) -> disparity, image1Rec, image2Rec, pointCloud

#include <opencv2/ccalib/omnidir.hpp>

1組の画像からのステレオ3次元再構成。

引数
image11枚目の入力画像
image22枚目の入力画像
K11台目のカメラの入力カメラ行列
D11台目のカメラに対する入力歪みパラメータ \((k_1, k_2, p_1, p_2)\)
xi1CMei のモデルにおける、1台目のカメラに対する入力パラメータ xi
K22台目のカメラの入力カメラ行列
D22台目のカメラに対する入力歪みパラメータ \((k_1, k_2, p_1, p_2)\)
xi2CMei のモデルにおける、2台目のカメラに対する入力パラメータ xi
R1台目と2台目のカメラの間の回転
T1台目と2台目のカメラの間の並進
flagrectification(平行化)の種類のフラグ。RECTIFY_PERSPECTIVE または RECTIFY_LONGLATI
numDisparitiesStereoSGBM における引数 'numDisparities'。詳細は StereoSGBM を参照。
SADWindowSizeStereoSGBM における引数 'SADWindowSize'。詳細は StereoSGBM を参照。
disparityステレオマッチングによって生成された視差マップ
image1Rec1枚目の画像を平行化した画像
image2Rec2枚目の画像を平行化した画像
newSize平行化画像の画像サイズ。omnidir::undistortImage を参照。
Knew平行化画像の新しいカメラ行列。omnidir::undistortImage を参照。
pointCloud3次元再構成の点群。型は CV_64FC3。
pointType点群の種類。XYZRGB または XYZ を指定できる。

◆ stereoRectify()

void cv::omnidir::stereoRectify ( InputArray R,
InputArray T,
OutputArray R1,
OutputArray R2 )
Python:
cv.omnidir.stereoRectify(R, T[, R1[, R2]]) -> R1, R2

#include <opencv2/ccalib/omnidir.hpp>

全方位カメラモデルのステレオ平行化。2台のカメラの平行化回転を計算する。

引数
R1台目と2台目のカメラの間の回転
T1台目と2台目のカメラの間の並進
R11台目のカメラに対する 3x3 回転行列の出力
R22台目のカメラに対する 3x3 回転行列の出力

◆ undistortImage()

void cv::omnidir::undistortImage ( InputArray distorted,
OutputArray undistorted,
InputArray K,
InputArray D,
InputArray xi,
int flags,
InputArray Knew = cv::noArray(),
const Size & new_size = Size(),
InputArray R = Mat::eye(3, 3, CV_64F) )
Python:
cv.omnidir.undistortImage(distorted, K, D, xi, flags[, undistorted[, Knew[, new_size[, R]]]]) -> undistorted

#include <opencv2/ccalib/omnidir.hpp>

全方位画像を透視画像に歪み補正する。

引数
distorted入力する全方位画像。
undistorted出力する歪み補正後の画像。
Kカメラ行列 \(K = \vecthreethree{f_x}{s}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\)。
D歪み係数の入力ベクトル \((k_1, k_2, p_1, p_2)\)。
xiCMei のモデルに対するパラメータ xi。
flagsrectification(平行化)の種類を示すフラグ。RECTIFY_PERSPECTIVE, RECTIFY_CYLINDRICAL, RECTIFY_LONGLATI, RECTIFY_STEREOGRAPHIC
Knew歪んだ画像のカメラ行列。指定されない場合は単に K となる。
new_size新しい画像サイズ。デフォルトでは distorted のサイズとなる。
R入力画像と出力画像の間の回転行列。デフォルトでは単位行列となる。

◆ undistortPoints()

void cv::omnidir::undistortPoints ( InputArray distorted,
OutputArray undistorted,
InputArray K,
InputArray D,
InputArray xi,
InputArray R )
Python:
cv.omnidir.undistortPoints(distorted, K, D, xi, R[, undistorted]) -> undistorted

#include <opencv2/ccalib/omnidir.hpp>

CMei のモデルを用いて全方位カメラの2D画像点を歪み補正する。

引数
distorted歪んだ画像点の配列。Vec2f のベクトル、または型 CV_32F の 1xN/Nx1 2チャンネルMatで、64F のビット深度も受け付けられる
Kカメラ行列 \(K = \vecthreethree{f_x}{s}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\)。
D歪み係数 \((k_1, k_2, p_1, p_2)\)。
xiCMeiのモデル用のパラメータxi
R元空間と物体空間の間の回転変換。3x3 の1チャンネル、またはベクトル: 3x1/1x3 の1チャンネルか 1x1 の3チャンネル
undistorted正規化されたオブジェクト点の配列。Vec2f/Vec2d のベクトル、または歪み点と同じビット深度を持つ 1xN/Nx1 2チャンネルMat