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