calib3d_recoverPose_InputArray1

[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
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_calib3d
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs