[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 |