1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile: itkShapePriorMAPCostFunctionBase.txx,v $
Language: C++
Date: $Date: 2003-09-10 14:28:39 $
Version: $Revision: 1.2 $
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __itkShapePriorMAPCostFunctionBase_txx_
#define __itkShapePriorMAPCostFunctionBase_txx_
#include "itkShapePriorMAPCostFunctionBase.h"
namespace itk {
/**
* Constructor
*/
template <class TFeatureImage, class TOutputPixel>
ShapePriorMAPCostFunctionBase<TFeatureImage,TOutputPixel>
::ShapePriorMAPCostFunctionBase()
{
m_ShapeFunction = NULL;
m_ActiveRegion = NULL;
m_FeatureImage = NULL;
}
/**
* PrintSelf
*/
template <class TFeatureImage, class TOutputPixel>
void
ShapePriorMAPCostFunctionBase<TFeatureImage,TOutputPixel>
::PrintSelf( std::ostream& os, Indent indent) const
{
Superclass::PrintSelf( os, indent );
os << indent << "ShapeFunction: " << m_ShapeFunction.GetPointer() << std::endl;
os << indent << "ActiveRegion: " << m_ActiveRegion.GetPointer() << std::endl;
os << indent << "FeatureImage: " << m_FeatureImage.GetPointer() << std::endl;
}
/**
*
*/
template <class TFeatureImage, class TOutputPixel>
typename ShapePriorMAPCostFunctionBase<TFeatureImage,TOutputPixel>
::MeasureType
ShapePriorMAPCostFunctionBase<TFeatureImage,TOutputPixel>
::GetValue( const ParametersType & parameters ) const
{
return ( this->ComputeLogInsideTerm( parameters ) +
this->ComputeLogGradientTerm( parameters ) +
this->ComputeLogShapePriorTerm( parameters ) +
this->ComputeLogPosePriorTerm( parameters ) );
}
/**
*
*/
template <class TFeatureImage, class TOutputPixel>
void
ShapePriorMAPCostFunctionBase<TFeatureImage,TOutputPixel>
::Initialize(void) throw ( ExceptionObject )
{
if ( !m_ShapeFunction )
{
itkExceptionMacro( << "ShapeFunction is not present." );
}
if ( !m_ActiveRegion )
{
itkExceptionMacro( << "ActiveRegion is not present." );
}
if ( !m_FeatureImage )
{
itkExceptionMacro( << "FeatureImage is not present." );
}
}
} // end namespace itk
#endif
|