2016-10-04 11 views
1

より明白円を認識していない私は下に指定されたパラメータを使ってSimpleBlobDetectorを使用しています:が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

+0

私は電話をかけていてデバッグはできませんが、オブジェクトの機能をチェックして、すべてがフィルタのパラメータに含まれていることを確認してください。 –

+0

はい、私はできるだけ多くのブロブをキャッチするためにフィルタリングパラメータを非常に幅広くしようとしましたが、問題はまだ発生しました – ganninu93

答えて

2

あなたは= 10000

params.maxAreaを追加する場合は、このイメージを取得する:

not too big to fail

ので、私は「デフォルトの最大がありますと仮定し、そしてあなたそれを超えています。

関連する問題