【发布时间】:2018-10-30 12:41:23
【问题描述】:
我正在尝试使用here 中描述的简单 blob 检测器,但是我破解的一个最简单的可能代码似乎没有产生任何结果:
img = cv2.imread("detect.png")
detector = cv2.SimpleBlobDetector_create()
keypoints = detector.detect(img)
此代码产生空的keypoints 数组:
[]
我试图检测其中的斑点的图像是:
我预计至少会检测到 2 个斑点 - 根据文档 simpleblobdetector 检测到深色斑点并且图像确实包含其中 2 个。
我知道这可能是我在这里遗漏的令人尴尬的简单事情,但我似乎无法弄清楚它是什么。我的疯狂猜测是,它必须与 blob 的圆形度有关,但尝试各种过滤器参数我似乎无法找出正确的圆形度参数。
更新: 根据下面的评论,建议我应该反转我的图像,尽管文档建议(除非我误读它),我试图反转它并再次运行示例:
img = cv2.imread("detect.png")
img = cv2.bitwise_not(img)
detector = cv2.SimpleBlobDetector_create()
keypoints = detector.detect(img)
但是,我怀疑这会给出相同的结果 - 没有检测到:
[]
【问题讨论】:
-
你需要黑色背景上的白色斑点,反转你的图像
-
正如我所说,文档中说:
Default values of parameters are tuned to extract dark circular blobs.我误读了这个吗?
标签: opencv