为什么simpleblobdetector漏掉了这个blob?

2024-10-04 11:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在opencv中使用简单的blob检测器,但今天对于blob检测器中为什么会遗漏最大的blob感到困惑。我已确保所有进行过滤的参数都已关闭。下面是我的代码spinet和simple blob detector报告的关键点

Raw Image

Keypoints reported

import cv2
import numpy as np
particlefilterparams = cv2.SimpleBlobDetector_Params()
particlefilterparams.filterByArea = False
particlefilterparams.minArea=7
particlefilterparams.maxArea =99999999
particlefilterparams.filterByCircularity = False
particlefilterparams.minCircularity = 0
particlefilterparams.maxCircularity = 255
particlefilterparams.filterByConvexity = False
particlefilterparams.minConvexity = 0
particlefilterparams.maxConvexity = 1
particlefilterparams.filterByInertia = False
particlefilterparams.minInertiaRatio = 0
particlefilterparams.maxInertiaRatio = 1
particlefilterparams.minThreshold =1
particlefilterparams.maxThreshold = 255

shotdetector = cv2.SimpleBlobDetector_create(particlefilterparams)
counter = 0

diff = cv2.imread('Missed.png', 0)
ret,bimg = cv2.threshold(diff, 1, 255, cv2.THRESH_BINARY)
oimg=cv2.bitwise_not(bimg)
shots = shotdetector.detect(oimg)
oimg = cv2.bitwise_not(oimg)
im_with_keypoints = cv2.drawKeypoints(oimg, shots, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

# Show keypoints
cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)
cv2.destroyAllWindows()

Tags: importfalsenpnotdiffcv2blob检测器