我想为图像上的每个白色区域获取一些描述符,以过滤这些区域并单独使用它们。我该怎么办?
我已阅读How to use OpenCV SimpleBlobDetector和http://www.learnopencv.com/blob-detection-using-opencv-python-c/但仍无法通过简单图片获得任何结果。
这是我在python中的代码
img = cv2.imread("map.jpg", cv2.IMREAD_GRAYSCALE)
params = cv2.SimpleBlobDetector_Params()
params.blobColor = 255
params.filterByColor = True
params.minArea = 16
params.filterByArea = True
detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(255 - img)
len(keypoints)
# 0
OpenCV 3.1.0
图像被灰度化。
UPD:@ api55评论后更新了代码
答案 0 :(得分:1)
我想为图像上的每个白色区域获取一些描述符,以过滤这些区域并单独使用它们。我该怎么办?
我的目标可以通过sklearn.measure.label
达成。此函数返回一个numpy数组,其中包含每个连接区域的相同形状和标签。
但无论如何,仍然不清楚为什么OpenCV的SimpleBlobDetector不起作用。
答案 1 :(得分:0)
我遇到了同样的问题。我不得不删除fiterbyarea参数:
params.filterByArea = False