calib3d_decomposeHomographyMat

[32/64bit] ホモグラフィ行列を,回転(複数),並進(複数),平面法線(複数)に分解します.

calib3d_decomposeHomographyMat p1,p2,p3,p4,p5,p6

p1 = sptr : IntPtr H
p2 = sptr : IntPtr K
p3 = sptr : IntPtr rotations
p4 = sptr : IntPtr translations
p5 = sptr : IntPtr normals
p6 = var : out int returnValue

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

この関数は,平面物体の2つのビュー間の相対的なカメラの動きを抽出し,回転,並進,平面法線の最大4つの数学的解のタプルを返す.ホモグラフィ行列Hの分解については,[160]で詳しく述べられています.平面によって誘導されたホモグラフィHが、ソース画像点\(p_i\)とデスティネーション画像点\(p'_i\)に制約を与える場合、回転と平行移動のタプルを返します。とすると,回転[k]と並進[k]のタプルは,ソースカメラの座標系からデスティネーションカメラの座標系への基底の変更となる.ただし,H を分解することで,シーンの(通常は未知の)深度で正規化された並進,つまり,方向は正規化された長さでしか得られません.点の対応が得られる場合は,正の深度制約,つまり,すべての点がカメラの前になければならないという制約を適用することで,少なくとも2つの解がさらに無効になることがあります.

元関数名(C#): calib3d_decomposeHomographyMat
元DLLエクスポート名: calib3d_decomposeHomographyMat
参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_decomposeHomographyMat(
    cv::_InputArray *H,
    cv::_InputArray *K,
    std::vector<cv::Mat> *rotations,
    std::vector<cv::Mat> *translations,
    std::vector<cv::Mat> *normals,
    int *returnValue)
{
    BEGIN_WRAP
    *returnValue = cv::decomposeHomographyMat(*H, *K, *rotations, *translations, *normals);
    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