[32/64bit] グリッド上の円の中心を見つけます。
calib3d_findCirclesGrid_vector p1,p2,p3,p4,p5,p6
p1 = sptr : IntPtr image p2 = ARGS_SIZE : Size patternSize p3 = sptr : IntPtr centers p4 = int : int flags p5 = sptr : IntPtr blobDetector p6 = var : out int returnValue
(プラグイン / モジュール : OpenCvSharpExtern.dll)
この関数は,入力画像に格子状の円が含まれているかどうかを調べます.この関数は,入力画像に格子状の円が含まれているかどうかを判定し,含まれている場合は,その円の中心を求めます.この関数は,すべての円の中心が見つかり,それらが一定の順序(行ごとに左から右へ)で配置されていれば,0以外の値を返します.そうでない場合,この関数がすべての角を見つけられなかったり,並べ替えることができなかったりすると,0を返します. 円の中心を検出して描画するサンプルの使い方:Size patternsize(7,7); //中心の数Mat gray = ...; //ソース imageevector<Point2f> centers; //これは,検出された中心で埋められますbool patternfound = findCirclesGrid(gray, patternsize, centers);drawChessboardCorners(img, patternsize, Mat(centres), patternfound);fragmentNoteこの関数は,様々な環境下で検出をより確実なものにするために,ボードの周囲にホワイトスペース(四角い厚さの境界線のようなもの,広ければ広いほど良い)を必要とします. 元関数名(C#): calib3d_findCirclesGrid_vector 元DLLエクスポート名: calib3d_findCirclesGrid_vector 参照元CSファイル: Internal\PInvoke\NativeMethods\calib3d\NativeMethods_calib3d.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) calib3d_findCirclesGrid_vector( cv::_InputArray *image, MyCvSize patternSize, std::vector<cv::Point2f> *centers, int flags, cv::FeatureDetector* blobDetector, int *returnValue) { BEGIN_WRAP if (blobDetector == nullptr) { *returnValue = cv::findCirclesGrid(*image, cpp(patternSize), *centers, flags) ? 1 : 0; } else { const cv::Ptr<cv::FeatureDetector> detectorPtr(blobDetector, BlobDetectorDeleter); // don't delete *returnValue = cv::findCirclesGrid(*image, cpp(patternSize), *centers, flags, detectorPtr) ? 1 : 0; } 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 |