calib3d_correctMatches_array

[32/64bit] 対応する点の座標を修正します.

calib3d_correctMatches_array p1,p2,p3,p4,p5,p6,p7

p1 = var : double* F
p2 = var : Point2d[] points1
p3 = int : int points1Size
p4 = var : Point2d[] points2
p5 = int : int points2Size
p6 = var : Point2d[] newPoints1
p7 = var : Point2d[] newPoints2

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

解説

この関数は,Optimal Triangulation Method を実装しています(詳細は,「多視点幾何学」を参照してください).この関数は,与えられた各点の対応点 points1[i] <-> points2[i],および基本行列 F に対して,幾何学的誤差 ????? (d(points1[i],d(points1[i], newPoints1[i])^2 + d(points2[i],newPoints2[i])^2\) (ここで、\(d(a,b)\)は、点\(a)と点\(b)の間の幾何学的距離です)。

元関数名(C#): calib3d_correctMatches_array
元DLLエクスポート名: calib3d_correctMatches_array
参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_correctMatches_array(
    double *F,
    cv::Point2d *points1, int points1Size,
    cv::Point2d *points2, int points2Size,
    cv::Point2d *newPoints1, cv::Point2d *newPoints2)
{
    BEGIN_WRAP
    cv::Mat_<double> FM(3, 3, F);
    cv::Mat_<cv::Point2d> points1M(points1Size, 1, points1);
    cv::Mat_<cv::Point2d> points2M(points2Size, 1, points2);
    cv::Mat_<double> points1MM = points1M.reshape(2);
    cv::Mat_<double> points2MM = points2M.reshape(2);
    cv::Mat_<cv::Point2d> newPoints1M(points1Size, 1, newPoints1);
    cv::Mat_<cv::Point2d> newPoints2M(points2Size, 1, newPoints2);
    cv::Mat_<double> newPoints1MM = points1M.reshape(2);
    cv::Mat_<double> newPoints2MM = points2M.reshape(2);
    cv::correctMatches(FM, points1MM, points2MM, newPoints1MM, newPoints2MM);
    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