Hi all, I'm trying to implement the watershed algorithm described in this paper http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.5268&rep=rep1&type=pdf in Python. Looking at the watershed function in skimage.morphology, it's not clear to me whether this function is an exact implementation of Vincent & Soille's method. The docstring for morphology says, "Some ideas taken from . . ." and lists an older (by one year) paper by Soille. "Some ideas" seems to suggest that the implementation is not exact, but where the differences are is not clear. I've read through the morphology source code, as well as the C code it draws upon, but I'm getting tangled up trying to translate between Vincent and Soille's description and the C/Python code in skimage. Can anyone provide a clear and complete explanation of what exactly skimage.morphology.watershed does relative to the Vincent and Soille 1991 method? Many thanks, Dan
Hi Daniel,
Actually there's a known bug [1]_ in the scikit-image implementation (which
is originally from CellProfiler). I haven't figured it out yet, nor do I
know what the exact differences are to the paper. (And most images are
unaffected.) Are you looking to *use* the implementation or are you trying
to implement your own as a learning strategy? If the latter, you might want
to have a look at my own implementation [2]_ in gala, for which I tried to
follow the paper exactly. But it's way slower.
Juan.
.. [1] https://github.com/scikit-image/scikit-image/issues/803
.. [2] https://github.com/janelia-flyem/gala/blob/master/gala/morpho.py#L212
On Wed, May 20, 2015 at 7:00 AM, Daniel Bliss
Hi all,
I'm trying to implement the watershed algorithm described in this paper http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.5268&rep=rep1&type=pdf in Python. Looking at the watershed function in skimage.morphology, it's not clear to me whether this function is an exact implementation of Vincent & Soille's method. The docstring for morphology says, "Some ideas taken from . . ." and lists an older (by one year) paper by Soille. "Some ideas" seems to suggest that the implementation is not exact, but where the differences are is not clear. I've read through the morphology source code, as well as the C code it draws upon, but I'm getting tangled up trying to translate between Vincent and Soille's description and the C/Python code in skimage. Can anyone provide a clear and complete explanation of what exactly skimage.morphology.watershed does relative to the Vincent and Soille 1991 method?
Many thanks, Dan
-- You received this message because you are subscribed to the Google Groups "scikit-image" group. To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
participants (2)
-
Daniel Bliss
-
Juan Nunez-Iglesias