python - 使用 OpenCV 检测图像上的 Blob

标签 python opencv image-processing

我想为图像上的每个白色区域获取一些描述符,以过滤这些区域并分别对其进行操作。我该怎么做?

我已阅读 How to use OpenCV SimpleBlobDetectorhttp://www.learnopencv.com/blob-detection-using-opencv-python-c/但我的简单图像仍然得不到任何结果。

enter image description here

这是我的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 发表评论后更新

最佳答案

I want to get some descriptors for each white area on image to filter that areas and operate with them separately. How can I do it?

我的目标可以通过 sklearn.measure.label 实现。此函数为每个连接区域返回一个具有相同形状和标签的 numpy 数组。

但无论如何,仍然不清楚为什么 OpenCV 中的 SimpleBlobDetector 不起作用。

关于python - 使用 OpenCV 检测图像上的 Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162704/

相关文章:

python - pip install numpy 不起作用 : "No matching distribution found"

python - 为什么C中的运行时是如此随机?

image-processing - DFT 频率分量 Opencv

opencv - 为什么 sgbm 中的视差值可以被 16 整除?

c# - 系统参数异常 : Parameter is not valid

python - google colab 在此过程中设置了 '^C'

opencv - 如何在opencv-visualstudio2010 x64 win7中上传图片..

c++ - 将 Magick::Image 转换为 cv::Mat

python - 图像按一定形状调整大小

python - 使用python设置组权限