有没有一种简单的方法可以在python中实现分割二进制图像?
我的2d - "图像"是numpy
数组。使用的值为1.0
和0.0
。我需要一个值为1.0
的所有对象的列表。每个黑色像素都是对象的像素。对象可能包含许多值为1.0
的触摸像素。
我可以使用numpy
和scipy
。
我已经尝试迭代所有像素并创建像素集并在旧集合中填充新像素(或创建新集合)。不幸的是,实施很差,非常多,而且非常慢。
这样的东西已经存在,或者有一种简单的方法可以做到这一点?
非常感谢
答案 0 :(得分:1)
在我看来,这正是使用scipy.ndimage.measurements.label和scipy.ndimage.measurements.find_objects
可以做到的。你必须指明"触摸"手段。如果它意味着边缘共享,那么ndimage.measurements.label的默认结构就是你需要的,所以你只需要传递你的数组。如果触摸也意味着角落共享,您将在文档字符串中找到正确的结构。
然后,find_objects可以生成对象的切片列表。