[32/64bit] 推定された本質的な行列と,それに対応する2つの画像中の点から,カメラの相対的な回転と並進を,不正性のチェックを用いて復元します.このチェックに合格したインライアの数を返します.
calib3d_recoverPose_InputArray1 p1,p2,p3,p4,p5,p6,p7,p8
p1 = sptr : IntPtr E p2 = sptr : IntPtr points1 p3 = sptr : IntPtr points2 p4 = sptr : IntPtr cameraMatrix p5 = sptr : IntPtr R p6 = sptr : IntPtr P p7 = sptr : IntPtr mask p8 = var : out int returnValue
(プラグイン / モジュール : OpenCvSharpExtern.dll)
この関数は, decomposeEssentialMat を用いて本質的な行列を分解した後,頬性チェックを行うことで,可能性のあるポーズの仮説を検証します.チアラリティチェックとは,三角形化された3次元点が正の深度を持つことを意味します.この関数は, findEssentialMat からの出力 E と mask を処理するために利用できます.このシナリオでは,point1 と points2 は findEssentialMat の同じ入力です: // 例.RANSAC アルゴリズムを用いた基本行列の推定int point_count = 100;vector<Point2f> points1(point_count);vector<Point2f> points2(point_count);// ここでポイントを初期化します ...for( int i = 0; i < point_count; i++ ){ points1[i] = ...; points2[i] = ....;}// 両方の焦点距離 = 1, 主点 = (0, 0)Mat cameraMatrix = Mat::eye(3, 3, CV_64F);Mat E, R, t, mask;E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);recoverPose(E, points1, points2, cameraMatrix, R, t, mask);fragment 元関数名(C#): calib3d_recoverPose_InputArray1 元DLLエクスポート名: calib3d_recoverPose_InputArray1 参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_recoverPose_InputArray1( cv::_InputArray *E, cv::_InputArray *points1, cv::_InputArray *points2, cv::_InputArray *cameraMatrix, cv::_OutputArray *R, cv::_OutputArray *t, cv::_InputOutputArray *mask, int *returnValue) { BEGIN_WRAP *returnValue = cv::recoverPose(*E, *points1, *points2, *cameraMatrix, *R, *t, entity(mask)); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_calib3d |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |