【发布时间】:2019-05-05 06:02:35
【问题描述】:
我想为图像上的每个白色区域获取一些描述符,以过滤这些区域并分别对它们进行操作。我该怎么做?
我已经阅读了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 的评论之后更新了代码
【问题讨论】:
-
您需要传递 blob 参数,将 blobColor 设置为 255 并将按颜色过滤为 true。默认情况下,它会尝试在白色背景中查找深色斑点。或者你可以反转图像的颜色
-
@api55 我已经更新了代码(也在帖子中)但仍然没有结果
-
尝试将 minArea 参数也更改为较小的值,例如 16(大约 4x4 像素块)。在教程中,它说按颜色过滤不起作用(不确定你有什么版本)......你可以尝试反转图像颜色
-
@api55 没有任何改变
-
请尝试(更新)代码here
标签: python opencv image-processing