[Insight-users] ShapePriorMAPCostFunction and GeodesicActiveContourShapePriorLevelSetImageFilter

Lucas Lorenzo lucas at cvrti.utah.edu
Tue, 13 Jan 2004 22:27:59 -0700


--Apple-Mail-2--885884500
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	delsp=yes;
	charset=WINDOWS-1252;
	format=flowed

Hi Lydia,

I still have a few doubts. I'm compiling my program with no problems  =20=

but the output of the =20
GeodesicActiveContourShapePriorLevelSetImageFilter after been passed =20
through a BinaryThresholdImageFilter is an image of all zeros. So I've =20=

started checking the inputs to the =20
GeodesicActiveContourShapePriorLevelSetImageFilter:

1) when I wanted to initialize the cost function in order to check it, =20=

it asked me to set a shape function, a feature image and an active =20
region, so I did this:

   costFunction->SetShapeFunction(shape);
   costFunction->SetFeatureImage(sigmoid->GetOutput());
   costFunction->SetActiveRegion(fastMarching->GetTrialPoints());

    try    {
     costFunction->Initialize();
     }
   catch( itk::ExceptionObject & err )
     {
       std::cout << "costFunction" << err << std::endl;
     return EXIT_FAILURE;
     }

is this correct ? I'm asking because this member functions were not =20
used in the example.

2) for the optimizer the following member function was not used:

   optimizer->SetCostFunction(costFunction);

Is it necessary to do it or is this been done within =20
GeodesicActiveContourShapePriorLevelSetImageFilter ?




Even when doing these changes the output image is of all zeros. I think =20=

that this might be because of the many parameter settings but I'd like =20=

to discuss first the previous issues with you.
Thanks,

Lucas

On Monday, January 12, 2004, at 12:46 PM, Lydia Ng wrote:

> Hi Lucas,
>
> =A0
>
> I=92ve just updated/fixed =A0the documentation of=A0
>
> PCAShapeSignedDistanceFunction which will help towards answering your =20=

> questions:
>
> =A0
>
> /** \class PCAShapeSignedDistanceFunction
>
> =A0* \brief Compute the signed distance from a N-dimensional PCA =
Shape.
>
> =A0*
>
> =A0* This class computes the signed distance from a N-dimensional =
shape =20
> defined
>
> =A0* by:
>
> =A0* (1) a mean signed distance image \f$ M(x) \f$,
>
> =A0* (2) the first \f$ q \f$ principal components images
>
> =A0* \f$ P_i(x) \f$ and
>
> =A0* (3) a transform \f$ T(x) \f$ to define the pose
>
> =A0* (i.e. position or orientation of the shape).
>
> =A0*
>
> =A0* A particular instance of the shape is defined by a set of =20
> parameters \f$ p \f$.
>
> =A0* The first \f$ q \f$ parameters defines the weights applied to =
each =20
> principal components
>
> =A0* and the remaining parameters is used to define the transform. The =
=20
> user
>
> =A0* should refer to the documentation of the particular Transform =
class =20
> being used.
>
> =A0* The first set of parameters are called the ShapeParameters and =
the =20
> remaining
>
> =A0* parameters the PoseParameters.
>
> =A0*
>
> =A0* The method Evaluate( point x ) returns the approximate signed to =
the
>
> =A0* shape at point x such that:
>
> =A0*
>
> =A0* \f[ s =3D M(T(x)) + \sum_i^{q} p[i] * \sigma[i] * P_i(T(x)) \f]
>
> =A0*
>
> =A0* Where \sigma[i] are the square root of the eigenvalues. These are =
=20
> defined using
>
> =A0* method SetPrincipalComponentStandardDeviations().
>
> =A0*
>
> =A0* This class is templated over the coordinate representation type
>
> =A0* (e.g. float or double) and the space dimension.
>
> =A0*
>
> =A0* \sa ShapeSignedDistanceFunction
>
> =A0* \sa Transform
>
> =A0* \ingroup ImageFunctions
>
> =A0*
>
> =A0* */
>
> =A0
>
> If you are using PCA to define your shape.
>
> You should connect the mean image and principal components images to =20=

> the
>
> PCASignedDistancedFunction and set the square root of the
>
> eigenvalues as the PrincipalComponentStandardDeviations.
>
> =A0
>
> --------------------------------------
>
> Answer to Question (1)
>
> Since, the eigenvalues are already taken care of in the =20
> PCASignedDistanceFunction.
>
> In the ShapePriorMAPCostFunction you should
>
> SetShapeParametersMeans() to all zeros (of the length =3D number of =20=

> principal components used) and
>
> SetShapeParametersStandardDeviationsto all ones (length =3D num =20
> principal. Comp.).
>
> =A0
>
> -----------------------------------
>
> Answer to Question (3)
>
> As described above, the transform is used to define the pose of your =20=

> shape.
>
> In general the PCA will describes variations in your shape
>
> e.g. in Leventon=92s paper he shows an example that captures the =20
> variation scale, bending and curvature of the corpus callosum.
>
> The cost function restricts large variation of this model.
>
> However, he does not restrict the position of the shape =96 which he =20=

> assumes a uniform distribution.
>
> =A0
>
> In this implementation, the transform captures the =20
> position/orientation of the shape. Any type of transform can be use > =
e.g
>
> translationor rigid.
>
> =A0
>
> ----------------------------------------
>
> Answer to Question (2)
>
> filter->SetInitialParameters( parameters );
>
> =A0
>
> This set the initial parameters applied to the shape function =20
> component of the filter.
>
> For example, if I am using 3 principal components and a translation =20=

> transform and I want to start off with the mean shape and physical =20
> location (40.0, 50.0)
>
> Then I should set the initial parameters to:
>
> =A0
>
> parameters[0] =3D 0.0;=A0// weight applied to principal component 0
>
> parameters[1] =3D 0.0; // weight applied to principal component 1
>
> parameters[2] =3D 0.0; // weight applied to principal component 2
>
> parameters[3] =3D 40.0;
>
> parameters[4] =3D 50.0;
>
> =A0
>
> ----------------------------------------
>
> Does this help?
>
> =A0
>
> -Lydia
>
> =A0
>
> =A0
>
> =A0
>
> -----Original Message-----
> From: Lucas Lorenzo [mailto:lucas at cvrti.utah.edu]
> Sent:Friday, January 09, 20049:31 AM
> To: Insight-users at itk.org
> Subject: [Insight-users] ShapePriorMAPCostFunction and =20
> GeodesicActiveContourShapePriorLevelSetImageFilter
>
> =A0
>
> Hi all,
>
> =A0
>
> I'm using ShapePriorMAPCostFunction and =20
> GeodesicActiveContourShapePriorLevelSetImageFilter based on the test =20=

> ITK/Testing/Code/Algorithms/=20
> itkGeodesicActiveContourShapePriorLevelSetImageFilterTest_2.cxx
>
> So, I have three questions:
>
> =A0
>
> 1) when using ShapePriorMAPCostFunction what do SetShapeParameterMeans =
=20
> and SetShapeParameterStandardDeviations represent. In my case I'm =20
> working with 5 principal components so my understanding is that each =20=

> of the arrays passed to both of these methods will be of length 5, but =
=20
> I can't understand where should I get these values from.
>
> =A0
>
> 2) In the test file mentioned before an object (called filter) of =20
> class GeodesicActiveContourShapePriorLevelSetImageFilter is defined. =20=

> At a certain point an array (called parameters) of type ParametersType =
=20
> is defined and then the following member function is called
>
> =A0
>
> filter->SetInitialParameters( parameters );
>
> =A0
>
> I couldn't find the SetInitialParameters member function within the =20=

> list of all members of =20
> GeodesicActiveContourShapePriorLevelSetImageFilter. So my doubt is =20
> what should be loaded into parameters ?
>
> =A0
>
> 3) Finally, the following is done:
>
> =A0
>
> // Set up a translation transform
>
> //
>
> typedef itk::TranslationTransform<double,ImageDimension> =
TransformType;
>
> TransformType::Pointer transform =3D TransformType::New();
>
> and then the transform is passed to the object shape of class =20
> PCAShapeSignedDistanceFunction
>
> =A0
>
> shape->SetTransform( transform );
>
> =A0
>
> What is this transform used for ?
>
> =A0
>
> Sorry for asking all these questions. I feel that most of them have =20=

> more to do with the algorithm being implemented rather than ITK itself =
=20
> but when reading the reference paper many of these details are > =
missing.
>
> Cheers,
>
> =A0
>
> Lucas Lorenzo
>
> =A0
>
> University of Utah
>
> Nora Eccles Harrison CardioVascular Research and Training Institute
>
> Fellows Room
>
> 95 South 2000 East
>
> Salt Lake City, UT 84112-5000
>
> =A0
>
> e-mail: lucas at cvrti.utah.edu
>
>
Lucas Lorenzo

University of Utah
Nora Eccles Harrison CardioVascular Research and Training Institute
Fellows Room
95 South 2000 East
Salt Lake City, UT 84112-5000

e-mail:  lucas at cvrti.utah.edu
telephone: 801-587-9536

--Apple-Mail-2--885884500
Content-Transfer-Encoding: quoted-printable
Content-Type: text/enriched;
	charset=WINDOWS-1252

Hi Lydia,


I still have a few doubts. I'm compiling my program with no problems=20
but the output of the
GeodesicActiveContourShapePriorLevelSetImageFilter after been passed
through a BinaryThresholdImageFilter is an image of all zeros. So I've
started checking the inputs to the
GeodesicActiveContourShapePriorLevelSetImageFilter:


1) when I wanted to initialize the cost function in order to check it,
it asked me to set a shape function, a feature image and an active
region, so I did this:


  costFunction->SetShapeFunction(shape);

  costFunction->SetFeatureImage(sigmoid->GetOutput());

  costFunction->SetActiveRegion(fastMarching->GetTrialPoints());


   try    {

    costFunction->Initialize();

    }

  catch( itk::ExceptionObject & err )

    {

      std::cout <<<< "costFunction" <<<< err <<<< std::endl;

    return EXIT_FAILURE;

    }


is this correct ? I'm asking because this member functions were not
used in the example.


2) for the optimizer the following member function was not used:


  optimizer->SetCostFunction(costFunction);


Is it necessary to do it or is this been done within
GeodesicActiveContourShapePriorLevelSetImageFilter ?





Even when doing these changes the output image is of all zeros. I
think that this might be because of the many parameter settings but
I'd like to discuss first the previous issues with you.

Thanks,


Lucas


On Monday, January 12, 2004, at 12:46 PM, Lydia Ng wrote:


<excerpt><fixed><fontfamily><param>Courier New</param><smaller>Hi
Lucas,</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>I=92ve just
updated/fixed =A0the documentation of=A0</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>PCAShapeSignedDistanceFunction</smaller></fontfamily><=
/fixed>
which will help towards answering your questions:


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>/** \class
PCAShapeSignedDistanceFunction</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \brief
Compute the signed distance from a N-dimensional PCA =
Shape.</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* This class
computes the signed distance from a N-dimensional shape =
defined</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* =
by:</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* (1) a mean
signed distance image \f$ M(x) \f$, </smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* (2) the first
\f$ q \f$ principal components images </smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \f$ P_i(x)
\f$ and </smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* (3) a
transform \f$ T(x) \f$ to define the pose =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* (i.e.
position or orientation of the shape).</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* A particular
instance of the shape is defined by a set of parameters \f$ p \f$. =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* The first \f$
q \f$ parameters defines the weights applied to each principal
components </smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* and the
remaining parameters is used to define the transform. The =
user</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* should refer
to the documentation of the particular Transform class being =
used.</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* The first set
of parameters are called the ShapeParameters and the =
remaining</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* parameters
the PoseParameters.</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* The method
Evaluate( point x ) returns the approximate signed to the =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* shape at
point x such that:</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \f[ s =3D
M(T(x)) + \sum_i^{q} p[i] * \sigma[i] * P_i(T(x)) =
\f]</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* Where
\sigma[i] are the square root of the eigenvalues. These are defined
using</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* method
=
SetPrincipalComponentStandardDeviations().</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* This class is
templated over the coordinate representation type =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* (e.g. float
or double) and the space dimension.</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0*</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \sa
ShapeSignedDistanceFunction</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \sa =
Transform</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* \ingroup
ImageFunctions</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* =
</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>=A0* =
*/</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>=A0</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><smaller>If you are using
PCA to define your shape.</smaller></fontfamily></fixed>=20


<fixed><fontfamily><param>Courier New</param><smaller>You should
connect the mean image and principal components images to =
the</smaller></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><smaller>PCASignedDistancedFunction</smaller></fontfamily></fix=
ed>
and set the square root of the=20


<fixed><fontfamily><param>Courier =
New</param><smaller>eigenvalues</smaller></fontfamily></fixed>
as the PrincipalComponentStandardDeviations.


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>--------------------------------------</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Answer
to Question (1)</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Since,
the eigenvalues are already taken care of in the
PCASignedDistanceFunction.</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>In
the ShapePriorMAPCostFunction you should </smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>SetShapeParametersMeans</smaller>()
to all zeros (of the length =3D number of principal components used) =
and</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>SetShapeParametersStandardDeviations</smaller>to
all ones (length =3D num principal. Comp.).</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>-----------------------------------</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Answer
to Question (3)</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>As
described above, the transform is used to define the pose of your
shape. </smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>In
general the PCA will describes variations in your shape =
</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>e.g</smaller>.
in Leventon=92s paper he shows an example that captures the variation
scale, bending and curvature of the corpus =
callosum.</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>The
cost function restricts large variation of this =
model.</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>However,
he does not restrict the position of the shape =96 which he assumes a
uniform distribution.</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>In
this implementation, the transform captures the position/orientation
of the shape. Any type of transform can be use =
e.g</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>translation</smaller>or
rigid. </color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>----------------------------------------</smaller></color></fontfamily>=



=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Answer
to Question (2)</smaller></color></fontfamily>


<fixed><fontfamily><param>Courier =
New</param><smaller>filter</smaller></fontfamily></fixed>->SetInitialParam=
eters(
parameters );


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>This
set the initial parameters applied to the shape function component of
the filter. </smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>For
example, if I am using 3 principal components and a translation
transform and I want to start off with the mean shape and physical
location (40.0, 50.0)</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Then
I should set the initial parameters to:</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>parameters[</smaller>0]
=3D 0.0;=A0// weight applied to principal component =
0</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>parameters[</smaller>1]
=3D 0.0; // weight applied to principal component 1</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>parameters[</smaller>2]
=3D 0.0; // weight applied to principal component 2</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>parameters[</smaller>3]
=3D 40.0;</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>parameters[</smaller>4]
=3D 50.0;</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>----------------------------------------</smaller></color></fontfamily>=



=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>Does
this help?</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>-</smaller>Lydia</color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><small=
er>=A0</smaller></color></fontfamily>


<fontfamily><param>Tahoma</param><smaller>-----Original Message-----

<bold>From:</bold> Lucas Lorenzo [mailto:lucas at cvrti.utah.edu]

<bold>Sent:</bold>Friday, January 09, 20049:31 AM

<bold>To:</bold> Insight-users at itk.org

<bold>Subject:</bold> [Insight-users] ShapePriorMAPCostFunction and
=
GeodesicActiveContourShapePriorLevelSetImageFilter</smaller></fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>Hi all, </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>I'm using
ShapePriorMAPCostFunction and
GeodesicActiveContourShapePriorLevelSetImageFilter based on the test
=
ITK/Testing/Code/Algorithms/itkGeodesicActiveContourShapePriorLevelSetImag=
eFilterTest_2.cxx </fontfamily>


<fontfamily><param>Times New Roman</param>So, I have three questions: =
</fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>1) when using
ShapePriorMAPCostFunction what do SetShapeParameterMeans and
=
<color><param>0000,0000,0000</param>SetShapeParameterStandardDeviations</c=
olor>
represent. In my case I'm working with 5 principal components so my
understanding is that each of the arrays passed to both of these
methods will be of length 5, but I can't understand where should I get
these values from. </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>2) In the test file
mentioned before an object (called filter) of class
GeodesicActiveContourShapePriorLevelSetImageFilter is defined. At a
certain point an array (called parameters) of type ParametersType is
defined and then the following member function is called </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>filter->SetInitialParameters(
parameters ); </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>I couldn't find the
SetInitialParameters member function within the list of all members of
GeodesicActiveContourShapePriorLevelSetImageFilter. So my doubt is
what should be loaded into parameters ? </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>3) Finally, the following is
done: </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>// Set up a translation
transform </fontfamily>


<fontfamily><param>Times New Roman</param>// </fontfamily>


<fontfamily><param>Times New Roman</param>typedef
itk::TranslationTransform<<double,ImageDimension> TransformType; =
</fontfamily>


<fontfamily><param>Times New Roman</param>TransformType::Pointer
transform =3D TransformType::New(); </fontfamily>


<fontfamily><param>Times New Roman</param>and then the transform is
passed to the object shape of class PCAShapeSignedDistanceFunction =
</fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>shape->SetTransform(
transform ); </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>What is this transform used
for ? </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>Sorry for asking all these
questions. I feel that most of them have more to do with the algorithm
being implemented rather than ITK itself but when reading the
reference paper many of these details are missing. </fontfamily>


<fontfamily><param>Times New Roman</param>Cheers, </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>Lucas Lorenzo </fontfamily>


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>University</fontfamily> of
Utah=20


<fontfamily><param>Times New Roman</param>Nora Eccles Harrison
CardioVascular Research and Training Institute </fontfamily>


<fontfamily><param>Times New Roman</param>Fellows Room </fontfamily>


<fontfamily><param>Times New Roman</param>95 South 2000 East =
</fontfamily>


<fontfamily><param>Times New Roman</param>Salt Lake City</fontfamily>,
UT 84112-5000=20


<fontfamily><param>Times New Roman</param>=A0</fontfamily>


<fontfamily><param>Times New Roman</param>e-mail: lucas at cvrti.utah.edu =
</fontfamily>



</excerpt>Lucas Lorenzo


University of Utah

Nora Eccles Harrison CardioVascular Research and Training Institute

Fellows Room

95 South 2000 East

Salt Lake City, UT 84112-5000


e-mail:  lucas at cvrti.utah.edu

telephone: 801-587-9536


--Apple-Mail-2--885884500--