我正在使用openCV的 findCirclesGrid() 查找高分辨率相机拍摄的图像中的不对称圆的网格。
我尝试将 SimpleBlobDetector 参数更改为: -blobParms.filterByInertia = false; -blobParms.minArea = 2500; -blobParms.maxArea = 50000; 该功能无法检测到圆圈。
SimpleBlobDetector::Params blobParms;
blobParms.filterByInertia = false;
blobParms.minArea = 2500;
blobParms.maxArea = 50000;
Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(blobParms);
CirclesGridFinderParameters parms;
findCirclesGrid(inputImageGray, gridSize, foundCircleCenters, CALIB_CB_ASYMMETRIC_GRID , detector, parms);
但是当我添加 CALIB_CB_CLUSTERING 标志时,该函数成功地能够检测网格!
SimpleBlobDetector::Params blobParms;
blobParms.filterByInertia = false;
blobParms.minArea = 2500;
blobParms.maxArea = 50000;
Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(blobParms);
CirclesGridFinderParameters parms;
findCirclesGrid(inputImageGray, gridSize, foundCircleCenters, CALIB_CB_ASYMMETRIC_GRID + CALIB_CB_CLUSTERING, detector, parms);
任何人都可以解释一下如果使用此标志会发生什么变化?