Pixel-boundary contours for segmentation visualisation

Robin Wilson r.t.wilson.bak at googlemail.com
Mon Oct 26 05:02:33 EDT 2015


Thanks for the quick reply Juan.

I'm going to be picky now...!

I've tried the mark_boundary approach, but I hadn't realised that it 
produced raster boundaries, so they look rather blurry in the output image:

<https://lh3.googleusercontent.com/-1zRUm9D32Nk/Vi3q3oI5cBI/AAAAAAADLkM/wR6Xu637bss/s1600/ExampleBlurry.png>

I imagine I could probably use the information from find_boundaries to 
produce lists of vector points that I could then plot with matplotlib - to 
get a nice vector overlay. Before I implement that, has anyone done that 
already?

Thanks,

Robin

On Monday, 26 October 2015 08:33:31 UTC, Juan Nunez-Iglesias wrote:
>
> Hi Robin!
>
> Well, the easy workaround is to zoom your image a lot using ndi.zoom or 
> skimage.transform.rescale, and then use mpl's contour. =)
>
> The potentially slower way is to use 
> scikit-image.segmentation.mark_boundary with mode=subpixel. =)
>
> Juan.
>
>
>
>
> On Mon, Oct 26, 2015 at 7:25 PM, Robin Wilson <r.t.wil... at googlemail.com 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I'm struggling with a problem that I'm sure has been solved before - and 
>> probably by some users of this mailing list! I have a segmentation image 
>> and I want to extract the edges of the segments and show them on the 
>> original image. This sounds nice and easy, so I had a go using the 
>> matplotlib contour function and got the following:
>>
>>
>> <https://lh3.googleusercontent.com/-S2zawy2Wsq0/Vi3i9tFMwbI/AAAAAAADLj0/2Gt222-V4EE/s1600/ExampleContour.png>
>>
>> From my perspective, there are two issues with this: one is that the two 
>> segments (which are separate by pixels with the value zero) are actually 
>> joined, and the other is that the segment outlines don't follow the pixel 
>> boundaries: they are offset by around half a pixel, and 'cut the corners'. 
>> What I'd really like to produce is the following:
>>
>>
>> <https://lh3.googleusercontent.com/-UUwZAEhue8I/Vi3jQewKW-I/AAAAAAADLj8/gh66GU9-2yY/s1600/ExampleOutline.png>
>>
>> (if you look carefully you can see the blue outline around the edge of 
>> the segment)
>>
>> Does anyone know how to do this easily (and, ideally, reasonably quickly) 
>> in Python? From my investigations it seems that the contour function won't 
>> do what I want - but I can't find anything else that will do this, and I'd 
>> rather not implement something from scratch.
>>
>> Any thoughts?
>>
>> Robin
>>
>>
>> -- 
>> 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... at googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20151026/df80a99d/attachment.html>


More information about the scikit-image mailing list