It appears Matlab does it your way, combining with OR (with a toggle for 4- or 8-connected neighborhood to identify connected components). I'm not convinced this is the best way, since the convex hulls of separate objects can easily overlap. This is a challenging problem. To do this truly correctly you need the ability for each voxel to belong to more than one object, or to return a separate array for each individual connected component.
Either of these is possible. Bit depth is probably the limiting factor in the first case (64 or 128 unique objects max), while memory is probably going to become problematic for the second.
On the other hand, we could leave it alone, accept your current implementation, and make these Matlab-like limitations clear to the user in the docstring. If they care about potential overlap, they can always use the original `convex_hull_image` repeatedly on each label. This is probably the best way forward from the perspective of user expectations.
On Saturday, May 18, 2013 4:16:18 AM UTC-5, Chintak Sheth wrote:
Its been a while since my last correspondence. I had my exams and then went for a small trip with family.
So I was working on adding a convex_hull_object function to skimage. I had earlier written code for this, but now I've incorporated certain changes in convex_hull.py as pointed out by you'll. https://github.com/chintak/scikit-image/tree/convex_hull/skimage/morphology
I am using label() to generate a mask for extracting the different connected components and then adding up all the separate convex hull's of different objects. However, I was wondering if there is a better way of combining the different hulls as opposed to just logical ADD.
Any thoughts ?