【发布时间】:2012-09-28 02:53:42
【问题描述】:
我是 python 新手,卡住了..
我想制作一个 python 脚本,让我可以像这样分离图像上的相邻粒子:
像这样分成不同的区域:
有人建议我使用分水岭方法,据我所知,它会给我这样的结果:
编辑 居然发现这是距离变换,不是分水岭
然后我可以使用阈值将它们分开.. 遵循这个openCV watershed guide,但它只能去除粒子。无法“转换”代码来做我想做的事。
然后我采取了另一种方法。尝试使用openCV contours,它给了我很好的粒子轮廓。然后我一直在寻找一种简单的方法来执行多边形偏移,以便像这样缩小边缘:
使用偏移轮廓(多边形)的中心应该给我粒子的数量。但我只是找到了一种简单的方法来使用 python 进行边缘偏移/多边形收缩。
【问题讨论】:
-
您可能会感兴趣:stackoverflow.com/questions/10313602/… 距离变换可能对您的情况有用。据我了解,多边形收缩可能相当于对距离图进行阈值处理,不是吗?
-
+1 表示 Quentin 链接,distanceTransform 是您要查找的内容,示例与您的问题非常相似
-
距离变换确实让我走得很远,但随后@Nicolas Barbey 发布了一个非常好的和简单的解决方案。
标签: python opencv numpy matplotlib