[32bit] 2つの画像からキーポイントの一致を見つけて,それを描画します.
features2d_drawMatchesKnn p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16
p1 = sptr : IntPtr img1 p2 = var : KeyPoint[] keypoints1 p3 = int : int keypoints1Length p4 = sptr : IntPtr img2 p5 = var : KeyPoint[] keypoints2 p6 = int : int keypoints2Length p7 = sptr : IntPtr[] matches1to2 p8 = int : int matches1to2Size1 p9 = var : int[] matches1to2Size2 p10 = sptr : IntPtr outImg p11 = ARGS_SCALAR : Scalar matchColor p12 = ARGS_SCALAR : Scalar singlePointColor p13 = var : IntPtr[]? matchesMask p14 = int : int matchesMaskSize1 p15 = var : int[]? matchesMaskSize2 p16 = int : int flags
(プラグイン / モジュール : OpenCvSharpExtern.dll)
この関数は,2つの画像のキーポイント同士のマッチを,出力画像に描画します.マッチとは,2つのキーポイント(円)を結ぶ線のことです.cv::DrawMatchesFlags を参照してください. 元関数名(C#): features2d_drawMatchesKnn 元DLLエクスポート名: features2d_drawMatchesKnn 参照元CSファイル: Internal\PInvoke\NativeMethods\features2d\NativeMethods_features2d.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) features2d_drawMatchesKnn(cv::Mat *img1, cv::KeyPoint *keypoints1, int keypoints1Length, cv::Mat *img2, cv::KeyPoint *keypoints2, int keypoints2Length, cv::DMatch **matches1to2, int matches1to2Size1, int *matches1to2Size2, cv::Mat *outImg, MyCvScalar matchColor, MyCvScalar singlePointColor, char **matchesMask, int matchesMaskSize1, int *matchesMaskSize2, int flags) { BEGIN_WRAP const std::vector<cv::KeyPoint> keypoints1Vec(keypoints1, keypoints1 + keypoints1Length); const std::vector<cv::KeyPoint> keypoints2Vec(keypoints2, keypoints2 + keypoints2Length); std::vector<std::vector<cv::DMatch> > matches1to2Vec(matches1to2Size1); for (int i = 0; i < matches1to2Size1; i++) { cv::DMatch *p = matches1to2[i]; matches1to2Vec[i] = std::vector<cv::DMatch>(p, p + matches1to2Size2[i]); } std::vector<std::vector<char> > matchesMaskVec; if (matchesMask != nullptr) { matchesMaskVec = std::vector<std::vector<char> >(matchesMaskSize1); for (int i = 0; i < matchesMaskSize1; i++) { char *p = matchesMask[i]; matchesMaskVec[i] = std::vector<char>(p, p + matchesMaskSize2[i]); } } cv::drawMatches(*img1, keypoints1Vec, *img2, keypoints2Vec, matches1to2Vec, *outImg, cpp(matchColor), cpp(singlePointColor), matchesMaskVec, static_cast<cv::DrawMatchesFlags>(flags)); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_features2d |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |