opencv - SimpleBlobDetector 无法识别更明显的圆圈

标签 opencv computer-vision geometry detection

我正在使用具有以下指定参数的 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)

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

result of SimpleBlobDetector

最佳答案

如果你添加

params.maxArea = 10000

你得到这张图片:

not too big to fail

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

关于opencv - SimpleBlobDetector 无法识别更明显的圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862630/

相关文章:

python - 如何在大图中定位二维码以提高解码性能?

c# - 如何检查一个点是否包含在其他 4 个点之间?

java - 简单的圆圈碰撞 libgdx

python - 尝试使用 opencv fillPoly 将多边形添加到图像上时出错

image-processing - 如何检测图像中的 45 度边缘

python - 导入错误:没有名为 'torchvision.datasets.mnist' 的模块

c - 霍夫变换: improving algorithm efficiency over OpenCL

python - 如何使用python和openCV制作热图

android - 在 Eclipse 中使用 JNI 构建 OpenCV 应用程序

python - 如何使用 OpenCV2 在带有黑色边框的图像上显示白色文本?