まず、OpenCvでPython2.7によるブロブ検出を行っています。私がしたいのは、色の検出後にブロブ検出を終了することです。私は、赤い円(マーク)を検出し、他の斑点の干渉を避けるために、色の検出を最初に行い、次に斑点の検出を行いたいと思います。なぜ私はこのバイナリイメージでブロブ検出を行いません
と色検出後の画像が
binary maskは今、私はこの画像にブロブ検出をしたいですが、それは動作しません。 これは私のコードです。
import cv2
import numpy as np;
# Read image
im = cv2.imread("myblob.jpg", cv2.IMREAD_GRAYSCALE)
# Set up the detector with default parameters.
params = cv2.SimpleBlobDetector_Params()
# Change thresholds
params.minThreshold = 10; # the graylevel of images
params.maxThreshold = 200;
params.filterByColor = True
params.blobColor = 255
# Filter by Area
params.filterByArea = False
params.minArea = 10000
detector = cv2.SimpleBlobDetector(params)
# Detect blobs.
keypoints = detector.detect(im)
# Draw detected blobs as red circles.
# cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures the size of the circle corresponds to the size of blob
im_with_keypoints = cv2.drawKeypoints(im, keypoints, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
# Show keypoints
cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)`
それがこの画像white dots 上で動作するので、私は本当に私は白のドットの画像はバイナリマスクと似て静かですが、なぜカント私は、二値画像上のブロブ検出を行う?と思う、このコードで混乱しています誰も私に違いや正しいコードを教えてくれる?
ありがとうございます!
よろしく、 ナン
私が思うように追加情報が必要です。なぜそれがうまくいかないかの手がかりは、ブロブの構造になる可能性があります。最初のイメージでは、白いピクセルは大きなブロブに接続されていません(つまり、いくつかの単一のピクセルが浮動していることを意味しています)が、第2のイメージでは円は完全なブロブです。 – meetaig