SimpleBlobDetector 无法识别更明显的圆圈

gan*_*u93 4 geometry opencv detection computer-vision

我使用 SimpleBlobDetector 和下面指定的参数:

# Parameters
params = cv2.SimpleBlobDetector_Params()
params.filterByArea = True
params.minArea = 1500
params.filterByCircularity = True
params.minCircularity = 0.5
params.filterByConvexity = True
params.minConvexity = 0.9
params.filterByInertia = True
params.minInertiaRatio = 0.7
params.minDistBetweenBlobs = 10
params.filterByColor = False

# Create a detector with the parameters
detector = cv2.SimpleBlobDetector(params)
keypoints = detector.detect(dilated)
im_with_keypoints = cv2.drawKeypoints(dilated, keypoints, np.array([]), (0, 0, 255),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

# Display result
cv2.imshow("Keypoints", im_with_keypoints)
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果。正如您所看到的,一些“更干净”的圆没有被检测到,而其他具有更粗糙边缘的圆被检测到。请问可能是什么问题?

SimpleBlobDetector 的结果

mcd*_*fee 6

如果添加

参数.maxArea = 10000

你得到这个图像:

大到不能倒

所以我假设有一个默认的最大值,而你已经超过了它。