[Insight-users] e: handle watershed oversegmentation

Neal R. Harvey harve at lanl.gov
Tue Jan 25 12:59:56 EST 2011


Igor

For segmentation with Watersheds there are several approaches to controlling
the level of segmentation. A simple way of giving yourself a certain 
level of
control is, when using the itkWatershedImageFilter, to adjust the parameters
of the filter, particularly the Level parameter.

Also, as Dawood states, you can also control the level of segmentation
using a pre-smoothing step. This pre-smoothing step can be performed 
directly
on the input image, prior to creating the gradient (edge-strength) image 
which
you input to the watershed algorithm or on the gradient image.

Also, as Richard states, you can take another approach, in which you provide
markers that provide an initial location estimate for each object of 
interest in
the image (plus background).

Perhaps the best approach might be some combination of these that could 
include processing
of the original and/or gradient image and incorporation of marker 
information, as well
as adjusting the watershed parameters. However, in taking such an 
approach, this now
means there are a lot of variables to consider and choosing the optimal 
combination might
be more than a trivial task.

Cheers

Harve

> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 24 Jan 2011 09:01:53 -0800 (PST)
> From: Dawood Masslawi <masslawi at gmail.com>
> Subject: Re: [Insight-users] handle watershed oversegmentation
> To: inornden at googlemail.com
> Cc: insight-users at itk.org
> Message-ID: <981212.4509.qm at web130204.mail.mud.yahoo.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hi Igor,
> The level of details in watershed segmentation is controlled by a
> pre-smoothing step. It is most likely that the parameter setting
> for the pre-smoothing step in your application is causing an under-smoothing
> effect. Usually for pre-smoothing prior to the watershed segmentation an?
> anisotropic?diffusion filter is used. The level of smoothing in anisotropic?
> diffusion filter is controlled by three parameters, number of iterations,?
> time step and conductivity. Decreasing the number of iterations and the?
> conductivity factor can smooth more edges as well as increasing the time step.
> However, depending on your images better results might be achievable?
> using a different pre-smoothing method.
> As for the connectivity, you can use the neighborhood iterators.
> HTH,
> Dawood
>
>   
>
> Hi,
>
> i'm using WatershedImageFilter, but oversegmentation occurs.
>
> I want to join segments that are very small to their bigger neighbors (if
> they have more then x touching pixels).
>
> So i basically want to:
>  - join two given labels in a LabelImage
>  - measure how much two labels in a LabelImage touch each other
>
> Is there a way to do this nice and easy in itk?
>
> Or, if you have another approach to handle oversegmentation, please also
> tell me.
>
> Cheers
> Igor
>
>
>       
>
> ------------------------------
>
> Message: 9
> Date: Tue, 25 Jan 2011 13:03:17 +1100
> From: Richard Beare <richard.beare at gmail.com>
> Subject: Re: [Insight-users] handle watershed oversegmentation
> To: igor schneider <inornden at googlemail.com>
> Cc: insight-users at itk.org
> Message-ID:
> 	<AANLkTinNiWC8Bd4UaMrvg0Di=36KJgCf+fQboCvqrACr at mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi,
> You can also check the watershed approach using markers. The tutorial
> is at http://hdl.handle.net/1926/202 and the filter
> (itkMorphologicalWatershedFromMarkersImageFilter) is available as part
> of itk, if you build using the review option.
>
> If you don't have many objects to segment then you can easily test
> feasibility of segmenting this way by manually drawing a marker for
> each object of interest, as well as one or more background markers.
>
>
> On Mon, Jan 24, 2011 at 3:39 AM, igor schneider <inornden at googlemail.com> wrote:
>   
>> Hi,
>>
>> i'm using WatershedImageFilter, but oversegmentation occurs.
>>
>> I want to join segments that are very small to their bigger neighbors (if
>> they have more then x touching pixels).
>>
>> So i basically want to:
>> ?- join two given labels in a LabelImage
>> ?- measure how much two labels in a LabelImage touch each other
>>
>> Is there a way to do this nice and easy in itk?
>>
>> Or, if you have another approach to handle oversegmentation, please also
>> tell me.
>>
>> Cheers
>> Igor
>>
>>
>>     


-- 
HARVE (Neal R. Harvey)           Email: harve at lanl.gov
ISR-2                            Phone: 505 667 9077
Los Alamos National Laboratory   Fax: 505 664 0362
Los Alamos, NM 87545, USA        Mail Stop: D-436
The generation of random numbers is too important to be left to chance.



More information about the Insight-users mailing list