Python:二值图像分割
Python: Binary image segmentation
有没有一种简单的方法可以在python中实现二进制图像的分割?
我的 2d-"images" 是 numpy
数组。使用的值为 1.0
和 0.0
。我需要一个包含值 1.0
的所有对象的列表。每个黑色像素都是物体的一个像素。一个对象可能包含许多值为 1.0
.
的触摸像素
我可以用 numpy
也可以 scipy
.
我已经尝试遍历所有像素并创建像素集并在旧集中填充新像素(或创建新集)。不幸的是,实施很差,有很多错误,而且速度也很慢。
希望这样的东西已经存在或者有一个简单的方法来做到这一点?
非常感谢
在我看来,这正是使用 scipy.ndimage.measurements.label 和 scipy.ndimage.measurements.find_objects
可以完成的事情
您必须指定 "touching" 的含义。如果它意味着边共享,那么 ndimage.measurements.label 的默认结构就是你需要的,所以你只需要传递你的数组。如果触摸也意味着分享角落,你会在docstring中找到正确的结构。
find_objects 然后可以生成对象的切片列表。
有没有一种简单的方法可以在python中实现二进制图像的分割?
我的 2d-"images" 是 numpy
数组。使用的值为 1.0
和 0.0
。我需要一个包含值 1.0
的所有对象的列表。每个黑色像素都是物体的一个像素。一个对象可能包含许多值为 1.0
.
我可以用 numpy
也可以 scipy
.
我已经尝试遍历所有像素并创建像素集并在旧集中填充新像素(或创建新集)。不幸的是,实施很差,有很多错误,而且速度也很慢。
希望这样的东西已经存在或者有一个简单的方法来做到这一点?
非常感谢
在我看来,这正是使用 scipy.ndimage.measurements.label 和 scipy.ndimage.measurements.find_objects
可以完成的事情您必须指定 "touching" 的含义。如果它意味着边共享,那么 ndimage.measurements.label 的默认结构就是你需要的,所以你只需要传递你的数组。如果触摸也意味着分享角落,你会在docstring中找到正确的结构。
find_objects 然后可以生成对象的切片列表。