1
画像内の検出されたブロブを白色で塗りつぶしたいと思います。検出されたブロブを塗りつぶします(OpenCV、Python)
# Standard imports
import cv2
import numpy as np
# Read image
im = cv2.imread("5.tif", cv2.IMREAD_GRAYSCALE)
# Setup SimpleBlobDetector parameters.
params = cv2.SimpleBlobDetector_Params()
# Change thresholds
params.minThreshold = 10
params.maxThreshold = 200
# Filter by Area.
params.filterByArea = True
params.minArea = 0.01
params.minArea = 0.05
# Filter by Circularity
params.filterByCircularity = True
params.minCircularity = 0.1
# Filter by Convexity
params.filterByConvexity = True
params.minConvexity = 0.87
# Filter by Inertia
params.filterByInertia = True
params.minInertiaRatio = 0.02
# Create a detector with the parameters
ver = (cv2.__version__).split('.')
if int(ver[0]) < 3:
detector = cv2.SimpleBlobDetector(params)
else:
detector = cv2.SimpleBlobDetector_create(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 blobs
cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)
をこれは私が受けています出力されます:
...と、元画像:
これは私が使用していたコードですコードはhereから取られました それは非常にうまく説明されていますが、私はどこに "触れる"上記のスクリプトは私が要求しているものを微調整して行います。
おかげで満たされた白い円として
完璧には、それが仕事をしてくれました。ありがとう。 – BlueTrack
ブロブの形状を変更する方法も知っていますか?例えば、実際の円から二乗されたものから。 – BlueTrack
@BlueTrack編集を参照してください。 – zindarod