OpenCV中SimpleBlobDetector的minRepeatability参数有什么用?

rav*_*vvv 6 opencv

OpenCV中有一个minRepeatability参数SimpleBlobDetector.这个参数有什么用?如果我将它从1变为20,那么它将如何影响斑点检测?

Mik*_*iki 7

相关代码位于blobdetector.cpp中.

detect函数(使用仅一个minRepeatability):

  1. 发现在不同的阈值(从团块中心minThresholdmaxThresholdthresholdStep)的灰度图像上
  2. 如果在不同的阈值(在a内minDistBetweenBlobs)找到相同的斑点中心,则它(基本上)增加该斑点的计数器.
  3. 如果每个blob的计数器> = minRepeatability,那么它是一个稳定的 blob,并产生一个KeyPoint,否则blob被丢弃.

那么minRepeatability斑点在灰度图像上的不同阈值之间是如何稳定的.

默认值为:

thresholdStep = 10;
minThreshold = 50;
maxThreshold = 220;
minRepeatability = 2;
minDistBetweenBlobs = 10;
Run Code Online (Sandbox Code Playgroud)

minRepeatability那么最大有效值是:(maxThreshold - minThreshold) / thresholdStep,或者每个blob都将被丢弃.最小有效值为1,表示将保留所有blob并提供a KeyPoint.