[32/64bit] 2つの画像中の対応する点から,基本行列を求めます.
calib3d_findFundamentalMat_arrayF32 p1,p2,p3,p4,p5,p6,p7,p8,p9
p1 = var : Point2f[] points1 p2 = int : int points1Size p3 = var : Point2f[] points2 p4 = int : int points2Size p5 = int : int method p6 = double : double param1 p7 = double : double param2 p8 = sptr : IntPtr mask p9 = var : out IntPtr returnValue
(プラグイン / モジュール : OpenCvSharpExtern.dll)
この関数は,上述した4つの手法のうちの1つを用いて基本行列を計算し,その結果を返します.通常は,1つの行列だけが求められます.計算された基本行列は,指定された点に対応するエピポーラ線を求める computeCorrespondEpilines に渡すことができます.また,stereoRectifyUncalibrated に渡して,平行化変換を計算することもできます. :// 例.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] = ...;}Mat fundamental_matrix = findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);fragment 元関数名(C#): calib3d_findFundamentalMat_arrayF32 元DLLエクスポート名: calib3d_findFundamentalMat_arrayF32 参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_findFundamentalMat_arrayF32( cv::Point2f *points1, int points1Size, cv::Point2f *points2, int points2Size, int method, double param1, double param2, cv::_OutputArray *mask, cv::Mat **returnValue) { BEGIN_WRAP const cv::Mat points1M(points1Size, 1, CV_32FC2, points1); const cv::Mat points2M(points2Size, 1, CV_32FC2, points2); const auto mat = cv::findFundamentalMat( points1M, points2M, method, param1, param2, entity(mask)); *returnValue = new cv::Mat(mat); 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 |