[Insight-users] using itkVoronoiSegmentationImageFilter ?

Celina Imielinska ci42@columbia.edu
Mon, 21 Oct 2002 18:19:17 -0400 (EDT)


 Seungbum,

  as Yinpeng said, the Voronoi Diagram classifier segments globally all the
tissue in the image that is characterized by the homogeneity operator
(derived from the fuzzy connectendness method). If you are interested in
picking one connected component from all the segmented regions, you may
use the DeformableMeshFilter (DM) to do the selection (and
smoothing/improvement of the final segmentation as well).

 You can't use the DeformableMeshFilter without a prior, since this is a
boundary-based segmentation method that has to be initialized near the
solution. For example, you can use as a prior the Markov Random Field
(MRF)/Gibbs Prior, the itkGibbsPriorFilter (or itkRGBGibbsPriorFilter),
and follow with DM, then repeat iteratively MRF and DM, and so on. There is
a new version of the DM method that can be explained, in details, by Ting
Chen (chenting@graphics.cis.upenn.edu).

 You may try also, a stand-alone, vectorial relative fuzzy connectedness
method, the VectorFuzzyconnectednessImageFilter, to segment a region.

 The "Hybrid Segmentation Engine" consists of four components: Deformable
Model (DM), Gibbs Prior/Markov Random Field (MRF), Voroni Diagram
Clssifier (VD), and Fuzzy Connectedness (FC). We have explored some
hybrid "mixtures" derived from the engine: e.g. FC/VD/DM, MRF/DM,
vectorial relatice FC... but other combinations could be tested as well.

 Please let us know if need more detailed explanation.

  good luck,

 Celina Imielinska

On Mon, 21 Oct 2002, Yinpeng Jin wrote:

> VoronoiSegmenationImageFilter is a region-based classification,
> split-and-merge like algorithm.
> you are perfectly right, it picks up all the similar color regions in who=
le
> image. It works well if you have multiple objects in the image to
> segment, it was used because SimpleFuzzyConnectedness can only pick up
> one connected component.
> there is another version of FuzzyConnectedness, which is able to claim
> multiple objects (VectoriorFuzzyConnectedness)
> And to use Deformable Models is definitedly a good idea,  actually, all
> those three methods had been tested for combining together to build a
> hybrid segmentation framework.
> I bet Celina, Jay and Dimitris can explain the idea
> better, for your reference, please look at following paper in MICCAI 2001=
:
> C. Imielinska, D. Metaxas, J. Udupa, Y.Jin and T. Chen, "Hybrid
> Segmentation Methods of Anatomical Data." Proceedings of The Fourth
> International Conference on Medical Image Computing and Computer
> Assisted Interventions (MICCAI 2001), pp. 1058-1066, October 2001, Utrech=
t
> Netherlands.
>
>
>   ----- Original Message -----
>   From: Seungbum Koo
>   To: Yinpeng Jin
>   Cc: insight-users@public.kitware.com
>   Sent: Monday, October 21, 2002 4:51 PM
>   Subject: Re: Re: [Insight-users] using itkVoronoiSegmentationImageFilte=
r ?
>
>
>   Hi,
>   Thanks for the help. It worked and segmented but not as I expected. I d=
on't understand well about VoronoiSegmentationImageFilter but it seems to s=
egment all similar color regions in whole image as the seed region. I just =
wanted to find more exact boundary of that found using FuzzyConnectednessSc=
alarFilter.
>   Anyway I think the VoronoiSegmentationImageFilter worked fine. What do =
you think about using DeformableMeshFilter instead of VoronoiSegmentationIm=
ageFilter?
>
>   regards
>   Seungbum Koo
>
>   > Title : Re: [Insight-users] using itkVoronoiSegmentationImageFilter ?
>   > Date : Sun, 20 Oct 2002 13:34:32 -0400
>   > From : "Yinpeng Jin"
>   > To : Seungbum Koo,
>   >
>   > if you use takeaprior, then you don't want to setMean and setVar, tho=
se two parameters will be calculated from the binary mask.
>   > and
>   > try to use
>   > m_voronoiFilter->SetMeanPercentError(PERCENT);
>   > m_voronoiFilter->SetVarPercentError(VARPERCENT);
>   > in stead of
>   > m_voronoiFilter->SetMeanTolerance(10);
>   > m_voronoiFilter->SetVarTolerance(20);
>   >
>   > they are trying to manipulate the same parameter, but usually are mor=
e intuitive to figure.
>   > the MeanPercentError could usually be set between 0.1 to 0.3
>   > and the VarPercentError could be between 1 to 3. they don't depends o=
n your pixel intensity range, while the MeanTolerance and VarTolerance usua=
lly do.
>   > Also, you can first output your m_binaryImage to see if it is somethi=
ng reasonable. the VoronoisegmentationImagefilter will need something at le=
ast represents
>   > parts of your target object as the a prior.
>   > Try the above, and let me know what happens.
>   > Yinpeng.
>   >
>   >
>   >
>   > ----- Original Message -----
>   > From: Seungbum Koo
>   > To: insight-users@public.kitware.com
>   > Sent: Sunday, October 20, 2002 12:45 AM
>   > Subject: [Insight-users] using itkVoronoiSegmentationImageFilter ?
>   >
>   >
>   > Hi,
>   >
>   > I'm trying to use itkVoronoiSegmentationImageFilter combined with itk=
SimpleFuzzyConnectednessScalarImageFilter.
>   >
>   > I made a binary image from itkSimpleFuzzyConnectednessScalarImageFilt=
er but I couldn't figure out how to set itkVoronoiSegmentationImageFilter v=
ariables. Here is my source code.
>   >
>   > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>   > m_voronoiFilter->SetInput(m_rawImageSource->GetOutput());
>   > m_voronoiFilter->TakeAPrior(m_binaryImage);
>   > m_voronoiFilter->SetMean(520);
>   > m_voronoiFilter->SetVar(20);
>   > m_voronoiFilter->SetMeanTolerance(10);
>   > m_voronoiFilter->SetVarTolerance(20);
>   > // m_voronoiFilter->SetNumberOfSeeds(400); // ??
>   > m_voronoiFilter->SetSteps(5);
>   > m_voronoiFilter->Update();
>   > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>   >
>   > m_binaryImage is calculated from m_rawImageSource and as I expected.
>   > But this code just makes a black image... all zeros.
>   >
>              Seungbum Koo
>
>
>
>
>
>         "=BF=EC=B8=AE =C0=CE=C5=CD=B3=DD, Daum" http://www.daum.net =A1=
=BA =C6=F2=BB=FD=BE=B2=B4=C2 =B9=AB=B7=E1 =C7=D1=B8=DE=C0=CF=B3=DD =A1=BB
>
>              =BA=FC=B8=A3=B4=D9! =C6=ED=C7=CF=B4=D9! Daum=B8=DE=BD=C5=C0=
=FA
>               =B8=C5=C0=CF=B8=C5=C0=CF =BE=B2=B0=ED =B0=E8=BD=C3=C1=D2?  =
 Daum=BF=A3=C5=CD=C4=AB=B5=E5
>               Daum=C8=B8=BF=F8=C0=C7 =C7=CA=BC=F6=C7=B0! =BF=C2=BF=C0=C7=
=C1 =C3=D6=B0=ED=C0=C7 =C7=FD=C5=C3~
>
>
>