[Insight-users] ShapePriorMAPCostFunction and GeodesicActiveContourShapePriorLevelSetImageFilter

Lucas Lorenzo lucas@cvrti.utah.edu
Sat May 15 00:16:00 EDT 2004


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

Hi Lydia,

I have a doubt regarding the way you implemented the method =20
Evaluate(point x). The equation you are usingis

> =A0* \f[ s =3D M(T(x)) + \sum_i^{q} p[i] * \sigma[i] * P_i(T(x)) \f]

but when looking at Leventon's paper the sigma factor doesn't appear.
Could you please help me to understand this change?
Thanks,

Lucas

On Jan 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
>
> SetShapeParametersStandardDeviations to 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 =20=

> e.g
>
> translation or 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@cvrti.utah.edu]
>  Sent: Friday, January 09, 2004 9:31 AM
> To: Insight-users@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> =20
> 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 =20
> 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@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@cvrti.utah.edu
telephone: 801-587-9536

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

Hi Lydia,


I have a doubt regarding the way you implemented the method
Evaluate(point x). The equation you are usingis=20


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

</excerpt>

but when looking at Leventon's paper the sigma factor doesn't appear.

Could you please help me to understand this change?

Thanks,


Lucas


On Jan 12, 2004, at 12:46 PM, Lydia Ng wrote:


<excerpt><fixed><fontfamily><param>Courier New</param><x-tad-bigger>Hi
Lucas,</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>I=92ve just
updated/fixed =A0the documentation =
of=A0</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>
PCAShapeSignedDistanceFunction which will help towards answering your
questions:</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>/** \class
PCAShapeSignedDistanceFunction</x-tad-bigger></fontfamily></fixed>


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0* =
by:</x-tad-bigger></fontfamily></fixed>


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


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


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


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


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


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


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


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


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


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0*
parameters the PoseParameters.</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0* method
=
SetPrincipalComponentStandardDeviations().</x-tad-bigger></fontfamily></fi=
xed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


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


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0* \sa
ShapeSignedDistanceFunction</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0* \sa
Transform</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>=A0* \ingroup
ImageFunctions</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0*</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger> =A0* =
*/</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>=A0</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>If you are
using PCA to define your shape. </x-tad-bigger></fontfamily></fixed>


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


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>PCASignedDistancedFunction
and set the square root of the</x-tad-bigger></fontfamily></fixed>


<fixed><fontfamily><param>Courier New</param><x-tad-bigger>
eigenvalues as the =
PrincipalComponentStandardDeviations.</x-tad-bigger></fontfamily></fixed>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>--------------------------------------</x-tad-bigger></color></fon=
tfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Answer
to Question (1)</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Since,
the eigenvalues are already taken care of in the
PCASignedDistanceFunction.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>In
the ShapePriorMAPCostFunction you =
should</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>
SetShapeParametersMeans() to all zeros (of the length =3D number of
principal components used) and</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>SetShapeParametersStandardDeviations
to all ones (length =3D num principal. =
Comp.).</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>-----------------------------------</x-tad-bigger></color></fontfa=
mily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Answer
to Question (3)</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>As
described above, the transform is used to define the pose of your
shape.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>
In general the PCA will describes variations in your =
shape</x-tad-bigger></color></fontfamily>


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


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>The
cost function restricts large variation of this =
model.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>However,
he does not restrict the position of the shape =96 which he assumes a
uniform distribution.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


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


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>translation
or rigid.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger> =A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>----------------------------------------</x-tad-bigger></color></f=
ontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Answer
to Question (2)</x-tad-bigger></color></fontfamily>


<fixed><fontfamily><param>Courier =
New</param><x-tad-bigger>filter->SetInitialParameters(
parameters );</x-tad-bigger></fontfamily></fixed>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>This
set the initial parameters applied to the shape function component of
the filter.</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>
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)</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Then
I should set the initial parameters =
to:</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>parameters[0]
=3D 0.0;=A0 // weight applied to principal component =
0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>parameters[1]
=3D 0.0; // weight applied to principal component =
1</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>parameters[2]
=3D 0.0; // weight applied to principal component =
2</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>parameters[3]
=3D 40.0;</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>parameters[4]
=3D 50.0;</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>----------------------------------------</x-tad-bigger></color></f=
ontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>Does
this help?</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>-
Lydia</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


=
<fontfamily><param>Arial</param><color><param>0000,0000,8080</param><x-tad=
-bigger>=A0</x-tad-bigger></color></fontfamily>


<fontfamily><param>Tahoma</param><x-tad-bigger>-----Original
Message-----</x-tad-bigger></fontfamily>

=
<bold><fontfamily><param>Tahoma</param><x-tad-bigger>From:</x-tad-bigger><=
/fontfamily></bold><fontfamily><param>Tahoma</param><x-tad-bigger>
Lucas Lorenzo [mailto:lucas@cvrti.utah.edu]</x-tad-bigger></fontfamily>

<fontfamily><param>Tahoma</param><x-tad-bigger>
=
</x-tad-bigger><bold><x-tad-bigger>Sent:</x-tad-bigger></bold><x-tad-bigge=
r>
Friday, January 09, 2004 9:31 AM</x-tad-bigger></fontfamily>

=
<bold><fontfamily><param>Tahoma</param><x-tad-bigger>To:</x-tad-bigger></f=
ontfamily></bold><fontfamily><param>Tahoma</param><x-tad-bigger>
Insight-users@itk.org</x-tad-bigger></fontfamily>

=
<bold><fontfamily><param>Tahoma</param><x-tad-bigger>Subject:</x-tad-bigge=
r></fontfamily></bold><fontfamily><param>Tahoma</param><x-tad-bigger>
[Insight-users] ShapePriorMAPCostFunction and
=
GeodesicActiveContourShapePriorLevelSetImageFilter</x-tad-bigger></fontfam=
ily>


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


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


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


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


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


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


<fontfamily><param>Times New Roman</param><bigger><bigger>1) when
using ShapePriorMAPCostFunction what do SetShapeParameterMeans and
SetShapeParameterStandardDeviations 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.</bigger></bigger></fontfamily>


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


<fontfamily><param>Times New Roman</param><bigger><bigger>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</bigger></bigger></fontfamily>


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


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


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


<fontfamily><param>Times New Roman</param><bigger><bigger>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 =
?</bigger></bigger></fontfamily>


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


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


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


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


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


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


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


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


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


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


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


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


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


<fontfamily><param>Times New Roman</param><bigger><bigger>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.</bigger></bigger></fontfamily>


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


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


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


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


<fontfamily><param>Times New Roman</param><bigger><bigger>University
of Utah </bigger></bigger></fontfamily>


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


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


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


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


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


<fontfamily><param>Times New Roman</param><bigger><bigger>e-mail:
lucas@cvrti.utah.edu</bigger></bigger></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@cvrti.utah.edu

telephone: 801-587-9536


--Apple-Mail-23-1042661833--




More information about the Insight-users mailing list