Re: Livewire segmentation in scikit-image

Hello Stéfan! You are right. Livewire segmentation approach is often used for interactive segmentation when the contour is updated and displayed while user is moving the mouse. However, the approach itself is not limited to interactive segmentations, but can just as well be used as a semi-automatic segmentation approach. This is the functionality that the iPython ntebook in my repository on Github demonstrates (https://github.com/pdyban/livewire/blob/master/notebooks/Livewire.ipynb). Even though scikit-image is majorilly used as a static tool (wihtout on-the-fly user interaction), it can nonetheless be used in the latter case. In both cases I imagine that Liewire segmentation would enrich the segmentation arsenal in scikit-image. The algorithm is simple and follows along this article: https://en.wikipedia.org/wiki/Livewire_Segmentation_Technique. An enhanced search for the shortest path has been implemented based on a thread here: http://code.activestate.com/recipes/119466-dijkstras-algorithm-for-shortest-..., see comment 1. Please let me know if you have any concerns. Thanks! On Tuesday, 23 February 2016 03:56:30 UTC+1, stefanv wrote:
Hi Pavlo
On 22 February 2016 at 13:43, Pavlo Dyban <pdy...@gmail.com <javascript:>> wrote:
Hello! I am a great fan of scikit-learn and have used it in a number of various projects so far. This time, I want to contribute to the project. I have implemented Livewire segmentation algorithm for image segmentation and would like to bring it into the main package. My code is hosted on github, it is documented with sphinx and tested.
Thanks for your interest in contributing to scikit-image!
Livewire segmentation technique deduces object boundaries in the image by converting the image to a weighted graph where edges' weights are computed from the gradient image. The shortest path algorithm minimises the total cost function, thus avoiding steep gradients (i.e. object boundaries in the original image). An example of how the algorithm works you will find in my repository: https://github.com/pdyban/livewire.
I've only heard of livewire in terms of interactive work. Is it commonly used as a stand-alone technique?
Do you think this algorithm would be needed inside scikit-image? If yes, would that belong inside segmentation module? Could someone assist me in my first open source contribution? It would be great if I could contribute to your project! Thanks!
It may well be--I will rely on our segmentation specialists Emmanuelle and Juan to take a look. Do you perhaps have a citation for this method?
We're happy to help you get pull requests off the ground. In the mean time, take a look at:
http://scikit-image.org/docs/stable/contribute.html
Thanks! Stéfan

Hi Pavlo On 23 February 2016 at 09:38, Pavlo Dyban <pdyban@gmail.com> wrote:
You are right. Livewire segmentation approach is often used for interactive segmentation when the contour is updated and displayed while user is moving the mouse. However, the approach itself is not limited to interactive segmentations, but can just as well be used as a semi-automatic segmentation approach. This is the functionality that the iPython ntebook in my repository on Github demonstrates (https://github.com/pdyban/livewire/blob/master/notebooks/Livewire.ipynb).
I've managed to get your notebook running under Python 3, but I don't know how to use the Matplotlib popup GUI--can you explain? Clicking around yields no results.
The algorithm is simple and follows along this article: https://en.wikipedia.org/wiki/Livewire_Segmentation_Technique. An enhanced search for the shortest path has been implemented based on a thread here: http://code.activestate.com/recipes/119466-dijkstras-algorithm-for-shortest-..., see comment 1.
Could you use the shortest path implementation already implemented in scikit-image? Stéfan
participants (2)
-
Pavlo Dyban
-
Stéfan van der Walt