Skip to content

Commit

Permalink
COMP: Remove global declarations from GenericTransformImage.h
Browse files Browse the repository at this point in the history
  • Loading branch information
Kent Williams committed Sep 12, 2014
1 parent 4a80262 commit f00678a
Show file tree
Hide file tree
Showing 35 changed files with 140 additions and 105 deletions.
1 change: 1 addition & 0 deletions BRAINSABC/brainseg/AtlasRegistrationMethod.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ class AtlasRegistrationMethod : public itk::Object
typedef typename ByteImageType::RegionType ByteImageRegionType;
typedef typename ByteImageType::SizeType ByteImageSizeType;

typedef itk::Transform<double, 3, 3> GenericTransformType;
typedef std::vector<ProbabilityImagePointer> ProbabilityImageList;
typedef std::vector<OutputImagePointer> OutputImageList;

Expand Down
7 changes: 5 additions & 2 deletions BRAINSABC/brainseg/AtlasRegistrationMethod.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@

#include "itkBRAINSROIAutoImageFilter.h"

GenericTransformType::Pointer MakeRigidIdentity(void)
itk::Transform<double, 3, 3>::Pointer MakeRigidIdentity(void)
{
typedef itk::Transform<double, 3, 3> GenericTransformType;
// Also append identity matrix for each image
VersorRigid3DTransformType::Pointer rigidIdentity = VersorRigid3DTransformType::New();

Expand Down Expand Up @@ -454,7 +455,9 @@ AtlasRegistrationMethod<TOutputPixel, TProbabilityPixel>
muLogMacro(<< "Registering first atlas images to first subject image." << std::endl);
// Initialize the outputTransform with the initializer before starting the loop.
this->m_AtlasToSubjectTransform = this->m_AtlasToSubjectInitialTransform;
CompositeTransformType::Pointer atlasToSubjectCompositeTransform = dynamic_cast<CompositeTransformType *>( m_AtlasToSubjectTransform.GetPointer() );
typedef itk::CompositeTransform<double, 3> CompositeTransformType;
CompositeTransformType::Pointer atlasToSubjectCompositeTransform =
dynamic_cast<CompositeTransformType *>( m_AtlasToSubjectTransform.GetPointer() );
if( atlasToSubjectCompositeTransform.IsNull() )
{
atlasToSubjectCompositeTransform = CompositeTransformType::New();
Expand Down
1 change: 1 addition & 0 deletions BRAINSABC/brainseg/BRAINSABC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -638,6 +638,7 @@ int main(int argc, char * *argv)
muLogMacro(<< "=== Start ===\n");
muLogMacro(<< "Registering images using affine transform...\n");

typedef itk::Transform<double, 3, 3> GenericTransformType;
GenericTransformType::Pointer atlasToSubjectPreSegmentationTransform = NULL;

AtlasRegType::MapOfFloatImageVectors atlasOriginalImageList;
Expand Down
5 changes: 4 additions & 1 deletion BRAINSABC/brainseg/EMSegmentationFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,10 @@ class EMSegmentationFilter : public itk::ProcessObject
typedef vnl_matrix<FloatingPrecision> MatrixType;
typedef vnl_matrix_inverse<FloatingPrecision> MatrixInverseType;

typedef BSplineTransformType::Pointer BSplineTransformPointer;
typedef itk::BSplineTransform<CoordinateRepType, 3, 3 > BSplineTransformType;
typedef BSplineTransformType::Pointer BSplineTransformPointer;

typedef itk::Transform<double, 3, 3> GenericTransformType;

// Set/Get the maximum polynomial degree of the bias field estimate
itkSetMacro(MaxBiasDegree, unsigned int);
Expand Down
1 change: 1 addition & 0 deletions BRAINSABC/brainseg/EMSegmentationFilter.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -1589,6 +1589,7 @@ EMSegmentationFilter<TInputImage, TProbabilityImage>
std::cerr << "ERROR: NOT PROPERLY IMPLEMENTED YET HACK:" << std::endl;
}

typedef itk::CompositeTransform<double, 3> CompositeTransformType;
CompositeTransformType::Pointer templateGenericCompositeTransform =
dynamic_cast<CompositeTransformType *>( m_TemplateGenericTransform.GetPointer() );
if( templateGenericCompositeTransform.IsNull() )
Expand Down
2 changes: 2 additions & 0 deletions BRAINSCommonLib/BRAINSFitHelperTemplate.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ class BRAINSFitHelperTemplate : public Object
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);


typedef typename itk::CompositeTransform<double, 3> CompositeTransformType;
typedef typename CompositeTransformType::Pointer CompositeTransformPointer;
typedef IdentityTransform<double, MovingImageDimension> IdentityTransformType;

Expand Down
14 changes: 7 additions & 7 deletions BRAINSCommonLib/BRAINSFitHelperTemplate.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -789,7 +789,7 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
itkGenericExceptionMacro("Linear initial composite transform should have only one component \
as all linaear transforms are collapsed together.");
}
const GenericTransformType::ConstPointer currInitTransformFormGenericComposite =
const itk::Transform<double, 3, 3>::ConstPointer currInitTransformFormGenericComposite =
m_CurrentGenericTransform->GetFrontTransform();
try
{
Expand Down Expand Up @@ -878,7 +878,7 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
itkGenericExceptionMacro("Linear initial composite transform should have only one component \
as all linaear transforms are collapsed together.");
}
const GenericTransformType::ConstPointer currInitTransformFormGenericComposite =
const itk::Transform<double, 3, 3>::ConstPointer currInitTransformFormGenericComposite =
m_CurrentGenericTransform->GetFrontTransform();
try
{
Expand Down Expand Up @@ -980,7 +980,7 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
itkGenericExceptionMacro("Linear initial composite transform should have only one component \
as all linaear transforms are collapsed together.");
}
const GenericTransformType::ConstPointer currInitTransformFormGenericComposite =
const itk::Transform<double, 3, 3>::ConstPointer currInitTransformFormGenericComposite =
m_CurrentGenericTransform->GetFrontTransform();
try
{
Expand Down Expand Up @@ -1088,7 +1088,7 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
itkGenericExceptionMacro("Linear initial composite transform should have only one component \
as all linaear transforms are collapsed together.");
}
const GenericTransformType::ConstPointer currInitTransformFormGenericComposite =
const itk::Transform<double, 3, 3>::ConstPointer currInitTransformFormGenericComposite =
m_CurrentGenericTransform->GetFrontTransform();
try
{
Expand Down Expand Up @@ -1372,8 +1372,8 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
std::cout << "\nMoving image is warped by initial transform, "
<< "before it is passed to the BSpline registration.\n" << std::endl;
typedef float VectorComponentType;
typedef itk::Vector<VectorComponentType, GenericTransformImageNS::SpaceDimension> VectorPixelType;
typedef itk::Image<VectorPixelType, GenericTransformImageNS::SpaceDimension> DisplacementFieldType;
typedef itk::Vector<VectorComponentType, 3> VectorPixelType;
typedef itk::Image<VectorPixelType, 3> DisplacementFieldType;
typename MovingImageType::Pointer warpedMoving =
GenericTransformImage<
MovingImageType,
Expand Down Expand Up @@ -1513,7 +1513,7 @@ BRAINSFitHelperTemplate<FixedImageType, MovingImageType>::Update(void)
itkGenericExceptionMacro("Linear initial composite transform should have only one component \
as all linaear transforms are collapsed together.");
}
const GenericTransformType::ConstPointer currInitTransformFormGenericComposite =
const itk::Transform<double, 3, 3>::ConstPointer currInitTransformFormGenericComposite =
m_CurrentGenericTransform->GetFrontTransform();
const std::string transformFileType = currInitTransformFormGenericComposite->GetNameOfClass();

Expand Down
7 changes: 4 additions & 3 deletions BRAINSCommonLib/BRAINSFitSyN.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ typedef SyNRegistrationHelperType::ImageType ImageType;
}

template <class FixedImageType, class MovingimageType>
typename BRAINSCompositeTransformType::Pointer
typename itk::CompositeTransform<double,3>::Pointer
simpleSynReg( typename FixedImageType::Pointer & infixedImage,
typename MovingimageType::Pointer & inmovingImage,
typename BRAINSCompositeTransformType::Pointer compositeInitialTransform )
typename itk::CompositeTransform<double,3>::Pointer compositeInitialTransform )
{
typename SyNRegistrationHelperType::Pointer regHelper = SyNRegistrationHelperType::New();
{
Expand Down Expand Up @@ -148,7 +148,8 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage,
std::cerr << "Finshed SyN stage" << std::endl;
}
// Get the output transform
typename BRAINSCompositeTransformType::Pointer outputCompositeTransform = regHelper->GetModifiableCompositeTransform();
typename itk::CompositeTransform<double,3>::Pointer outputCompositeTransform =
regHelper->GetModifiableCompositeTransform();
// return composite result Transform;
return outputCompositeTransform;
}
Expand Down
50 changes: 36 additions & 14 deletions BRAINSCommonLib/GenericTransformImage.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,14 @@

namespace itk
{
VersorRigid3DTransformType::Pointer ComputeRigidTransformFromGeneric(
const GenericTransformType::ConstPointer genericTransformToWrite)
itk::VersorRigid3DTransform<double>::Pointer
ComputeRigidTransformFromGeneric(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite)
{
typedef VersorRigid3DTransformType VersorRigidTransformType;
VersorRigidTransformType::Pointer versorRigid = VersorRigidTransformType::New();
typedef itk::VersorRigid3DTransform<double> VersorRigid3DTransformType;
typedef itk::ScaleVersor3DTransform<double> ScaleVersor3DTransformType;
typedef itk::ScaleSkewVersor3DTransform<double> ScaleSkewVersor3DTransformType;

VersorRigid3DTransformType::Pointer versorRigid = VersorRigid3DTransformType::New();
versorRigid->SetIdentity();
// //////////////////////////////////////////////////////////////////////////
// ConvertTransforms
Expand Down Expand Up @@ -96,6 +99,7 @@ VersorRigid3DTransformType::Pointer ComputeRigidTransformFromGeneric(
}
else if( transformFileType == "AffineTransform" )
{
typedef itk::AffineTransform<double, 3> AffineTransformType;
const AffineTransformType::ConstPointer tempInitializerITKTransform =
dynamic_cast<AffineTransformType const *>( genericTransformToWrite.GetPointer() );
if( tempInitializerITKTransform.IsNull() )
Expand Down Expand Up @@ -129,10 +133,12 @@ VersorRigid3DTransformType::Pointer ComputeRigidTransformFromGeneric(
return versorRigid;
}

int WriteBothTransformsToDisk(const GenericTransformType::ConstPointer genericTransformToWrite,
int WriteBothTransformsToDisk(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite,
const std::string & outputTransform,
const std::string & strippedOutputTransform)
{
typedef itk::VersorRigid3DTransform<double> VersorRigid3DTransformType;
typedef itk::CompositeTransform<double, 3> CompositeTransformType;
// //////////////////////////////////////////////////////////////////////////
// Write out tranfoms for BRAINSFit.
/*
Expand Down Expand Up @@ -183,6 +189,10 @@ int WriteBothTransformsToDisk(const GenericTransformType::ConstPointer genericTr
}
else if( transformFileType == "BSplineTransform" )
{
typedef itk::BSplineTransform<double,
3,
3> BSplineTransformType;

const BSplineTransformType::ConstPointer tempInitializerITKTransform =
dynamic_cast<BSplineTransformType const *>( genericComponent.GetPointer() );
if( tempInitializerITKTransform.IsNull() )
Expand Down Expand Up @@ -217,8 +227,8 @@ int WriteBothTransformsToDisk(const GenericTransformType::ConstPointer genericTr
// Should just write out the rigid transform here.
if( strippedOutputTransform.size() > 0 )
{
typedef VersorRigid3DTransformType VersorRigidTransformType;
VersorRigidTransformType::Pointer versorRigid = itk::ComputeRigidTransformFromGeneric( genericComponent.GetPointer() );
VersorRigid3DTransformType::Pointer versorRigid =
itk::ComputeRigidTransformFromGeneric( genericComponent.GetPointer() );
if( versorRigid.IsNotNull() )
{
itk::WriteTransformToDisk<double>(versorRigid.GetPointer(), strippedOutputTransform);
Expand All @@ -233,19 +243,31 @@ int WriteBothTransformsToDisk(const GenericTransformType::ConstPointer genericTr
return 0;
}

int WriteStrippedRigidTransformToDisk(const GenericTransformType::ConstPointer genericTransformToWrite,
int WriteStrippedRigidTransformToDisk(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite,
const std::string & strippedOutputTransform)
{
return WriteBothTransformsToDisk(genericTransformToWrite, std::string(""), strippedOutputTransform);
}

GenericTransformType::Pointer ReadTransformFromDisk(const std::string & initialTransform)
itk::Transform<double, 3, 3>::Pointer ReadTransformFromDisk(const std::string & initialTransform)
{
GenericTransformType::Pointer genericTransform = NULL;
// read in the initial ITKTransform
TransformReaderType::Pointer transformListReader = TransformReaderType::New();
TransformListType currentTransformList;
TransformListType::const_iterator currentTransformListIterator;
itk::Transform<double, 3, 3>::Pointer genericTransform = NULL;

typedef itk::ThinPlateR2LogRSplineKernelTransform<double, 3> ThinPlateSpline3DTransformType;
typedef itk::ScaleVersor3DTransform<double> ScaleVersor3DTransformType;
typedef itk::ScaleSkewVersor3DTransform<double> ScaleSkewVersor3DTransformType;
typedef itk::VersorRigid3DTransform<double> VersorRigid3DTransformType;
typedef itk::AffineTransform<double, 3> AffineTransformType;
typedef itk::BSplineTransform<double, 3, 3> BSplineTransformType;
typedef itk::CompositeTransform<double, 3> BRAINSCompositeTransformType;

TransformFileReader::Pointer transformListReader = TransformFileReader::New();

typedef TransformFileReader::TransformListType TransformListType;

TransformListType currentTransformList;

TransformFileReader::TransformListType::const_iterator currentTransformListIterator;

try
{
Expand Down
43 changes: 8 additions & 35 deletions BRAINSCommonLib/GenericTransformImage.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,34 +48,6 @@
#include "itkTransformFactory.h"
#include "itkTransformFileReader.h"
#include "itkTransformFileWriter.h"
//
// TODO: The next two should be hidden in the cxx files again.
typedef itk::TransformFileReader TransformReaderType;
typedef itk::TransformFileReader::TransformListType TransformListType;

// TODO: These should be hidden in the BRAINSFit namespace.
typedef itk::Transform<double, 3, 3> GenericTransformType;

namespace GenericTransformImageNS
{
static const unsigned int SpaceDimension = 3;
static const unsigned int SplineOrder = 3;
}

typedef double CoordinateRepType;

typedef itk::BSplineTransform<CoordinateRepType,
GenericTransformImageNS::SpaceDimension,
GenericTransformImageNS::SplineOrder> BSplineTransformType;

typedef itk::CompositeTransform<double, 3> CompositeTransformType;
typedef itk::AffineTransform<double, 3> AffineTransformType;
typedef itk::VersorRigid3DTransform<double> VersorRigid3DTransformType;
typedef itk::ScaleVersor3DTransform<double> ScaleVersor3DTransformType;
typedef itk::ScaleSkewVersor3DTransform<double> ScaleSkewVersor3DTransformType;
typedef itk::ThinPlateR2LogRSplineKernelTransform<double, 3> ThinPlateSpline3DTransformType;

typedef itk::CompositeTransform<double, 3> BRAINSCompositeTransformType;

namespace itk
{
Expand Down Expand Up @@ -133,7 +105,8 @@ extern void WriteTransformToDisk( itk::Transform<TScalarType, 3, 3> const *const
* }
* \endcode
*/
extern GenericTransformType::Pointer ReadTransformFromDisk(const std::string & initialTransform);

extern itk::Transform<double, 3, 3>::Pointer ReadTransformFromDisk(const std::string & initialTransform);

/**
* \author Hans J. Johnson
Expand All @@ -152,23 +125,23 @@ extern GenericTransformType::Pointer ReadTransformFromDisk(const std::string & i
* WriteTransformToDisk<TScalarType>(myAffine.GetPointer(), "myAffineFile.mat");
* \endcode
*/
extern VersorRigid3DTransformType::Pointer ComputeRigidTransformFromGeneric(
const GenericTransformType::ConstPointer genericTransformToWrite);
extern itk::VersorRigid3DTransform<double>::Pointer
ComputeRigidTransformFromGeneric(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite);

/**
* \author Hans J. Johnson
* \brief Special purpose convenience function -- should not have a public
*interface.
*/
extern int WriteBothTransformsToDisk(const GenericTransformType::ConstPointer genericTransformToWrite,
extern int WriteBothTransformsToDisk(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite,
const std::string & outputTransform, const std::string & strippedOutputTransform);

/**
* \author Hans J. Johnson
* \brief Special purpose convenience function -- should not have a public
*interface.
*/
extern int WriteStrippedRigidTransformToDisk(const GenericTransformType::ConstPointer genericTransformToWrite,
extern int WriteStrippedRigidTransformToDisk(const itk::Transform<double, 3, 3>::ConstPointer genericTransformToWrite,
const std::string & strippedOutputTransform);
}

Expand All @@ -184,7 +157,7 @@ TransformResample(
const typename InputImageType::PixelType defaultValue,
typename itk::InterpolateImageFunction<InputImageType,
typename itk::NumericTraits<typename InputImageType::PixelType>::RealType>::Pointer interp,
typename GenericTransformType::ConstPointer transform);
typename itk::Transform<double, 3, 3>::ConstPointer transform);

/**
* \author Hans J. Johnson
Expand All @@ -211,7 +184,7 @@ typename OutputImageType::Pointer GenericTransformImage(
InputImageType const *const OperandImage,
const itk::ImageBase<InputImageType::ImageDimension> *ReferenceImage,
// typename DisplacementImageType::Pointer DisplacementField,
typename GenericTransformType::Pointer genericTransform,
typename itk::Transform<double, 3, 3>::Pointer genericTransform,
typename InputImageType::PixelType suggestedDefaultValue, // NOTE: This is
// ignored in the
// case of binary
Expand Down

0 comments on commit f00678a

Please sign in to comment.