15 #ifndef itkMammogramRegistrationFilter_h
16 #define itkMammogramRegistrationFilter_h
18 #include <itkImageToImageFilter.h>
20 #include <itkImageFileReader.h>
21 #include <itkImageFileWriter.h>
23 #include <itkImageMomentsCalculator.h>
36 template<
class TInputImage,
class TOutputImage >
38 public ImageToImageFilter< TInputImage, TOutputImage >
44 typedef ImageToImageFilter< TInputImage, TOutputImage >
Superclass;
55 TInputImage::ImageDimension);
66 typedef typename NumericTraits<InputImagePixelType>::RealType
RealType;
121 itkSetMacro( ControlPointSpacing,
float );
123 itkGetMacro( ControlPointSpacing,
float );
126 itkSetMacro( NumberOfLevels,
unsigned int );
128 itkGetMacro( NumberOfLevels,
unsigned int );
131 itkSetMacro( NumberOfLevelsToUse,
unsigned int );
133 itkGetMacro( NumberOfLevelsToUse,
unsigned int );
143 void SetTargetMask(InputImagePointer maskTarget) { this->SetInput(2, maskTarget); }
146 void SetSourceMask(InputImagePointer maskSource) { this->SetInput(3, maskSource); }
227 #ifdef ITK_USE_CONCEPT_CHECKING
228 itkConceptMacro(DimensionShouldBe2,
230 (Concept::SameDimension<itkGetStaticConstMacro(InputImageDimension),2>));
231 itkConceptMacro(InputHasNumericTraitsCheck,
232 (Concept::HasNumericTraits<InputImagePixelType>));
233 itkConceptMacro(OutputHasPixelTraitsCheck,
234 (Concept::HasPixelTraits<OutputImagePixelType>));
332 InputImagePointer imSource );
344 InputImagePointer imSource,
345 int finalInterpolator=4,
346 int registrationInterpolator=2 );
363 DataObject::Pointer
MakeOutput(
unsigned int idx);
367 void operator=(
const Self &);
375 #ifndef ITK_MANUAL_INSTANTIATION
376 #include "itkMammogramRegistrationFilter.txx"
void SetTargetImage(InputImagePointer imTarget)
Set the target image.
Definition: itkMammogramRegistrationFilter.h:137
InputImagePointer RunAffineRegistration(InputImagePointer imTarget, InputImagePointer imSource, int finalInterpolator=4, int registrationInterpolator=2)
The affine registration.
TOutputImage OutputImageType
Type of the output image.
Definition: itkMammogramRegistrationFilter.h:69
2D image filter class to segment the breast area from a mammogram.
Definition: itkMammogramMaskSegmentationImageFilter.h:28
MammogramRegistrationFilter()
bool ReadRegistrationData()
Read the transformations instead of re-running them?
virtual void GenerateData()
Does the real work.
bool m_FlgOverwrite
Overwrite existing registration even if it already exists.
Definition: itkMammogramRegistrationFilter.h:247
std::string m_FileSourceDistanceTransform
The output source mask distance transform image.
Definition: itkMammogramRegistrationFilter.h:287
std::string FileOfImageWithDimensionsLessThan2048(std::string fileInput)
Create a subsampled image if any of the image dimensions exceed 2048.
InputImagePointer GetDistanceTransform(InputImagePointer imMask)
Compute the distance transform of a mask.
bool ReadAffineTransformation(std::string fileAffineTransformation)
Read the affine transformation.
std::string m_FileSourceMask
The input source mask image filename.
Definition: itkMammogramRegistrationFilter.h:276
std::string m_FileTargetDistanceTransform
The output target mask distance transform image.
Definition: itkMammogramRegistrationFilter.h:285
std::string m_FileOutputAffineRegistered
The output affine registered image.
Definition: itkMammogramRegistrationFilter.h:298
std::string m_FileTarget
The input target image filename.
Definition: itkMammogramRegistrationFilter.h:269
itk::ImageRegistrationFactory< InputImageType, ImageDimension, ScalarType > FactoryType
Definition: itkMammogramRegistrationFilter.h:87
double ScalarType
Definition: itkMammogramRegistrationFilter.h:85
void SetFileOutputNonRigidTransformation(std::string fileOut)
Set the output non-rigid transformation (control-point) file.
Definition: itkMammogramRegistrationFilter.h:201
InputImagePointer m_Target
The target image.
Definition: itkMammogramRegistrationFilter.h:303
enumRegistrationImagesType m_TypeOfInputImagesToRegister
Specify the input images to register.
Definition: itkMammogramRegistrationFilter.h:253
void SetFileSource(std::string filename)
Set the source image filename.
Definition: itkMammogramRegistrationFilter.h:164
OutputImageType::PixelType OutputImagePixelType
Definition: itkMammogramRegistrationFilter.h:72
InputImagePointer GetTargetRegistrationMask(InputImagePointer imMask)
Expand the target mask to include the breast edge.
itk::ImageMomentsCalculator< InputImageType > ImageMomentCalculatorType
Definition: itkMammogramRegistrationFilter.h:92
DeformationFieldType::Pointer m_DeformationField
The registration deformation field.
Definition: itkMammogramRegistrationFilter.h:319
void SetFileOutputNonRigidRegistered(std::string fileOut)
Set the output non-rigid registered file.
Definition: itkMammogramRegistrationFilter.h:214
itk::Image< VectorPixelType, ImageDimension > DeformationFieldType
Definition: itkMammogramRegistrationFilter.h:78
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
NumericTraits< InputImagePixelType >::RealType RealType
Definition: itkMammogramRegistrationFilter.h:66
void SetTargetRegnMask(InputImagePointer maskTargetRegn)
Set the target registration mask.
Definition: itkMammogramRegistrationFilter.h:149
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Definition: itkMammogramRegistrationFilter.h:44
EulerAffineTransformType::Pointer EulerAffinePointerType
Definition: itkMammogramRegistrationFilter.h:90
TInputImage InputImageType
Type of the input image.
Definition: itkMammogramRegistrationFilter.h:58
void SetFileOutputDeformation(std::string fileOut)
Set the output deformation field file.
Definition: itkMammogramRegistrationFilter.h:205
SmartPointer< Self > Pointer
Definition: itkMammogramRegistrationFilter.h:45
void SetRegisterNonRigid(void)
Specify whether to perform a non-rigid registration.
Definition: itkMammogramRegistrationFilter.h:219
InputImagePointer m_TargetMask
The target mask image.
Definition: itkMammogramRegistrationFilter.h:308
InputImageType::PointType InputImagePointType
Definition: itkMammogramRegistrationFilter.h:64
enumRegistrationImagesType
The input images to register.
Definition: itkMammogramRegistrationFilter.h:109
Definition: itkMammogramRegistrationFilter.h:111
void SetFileInputTargetRegistrationMask(std::string filename)
Set the input target registration mask filename.
Definition: itkMammogramRegistrationFilter.h:178
InputImagePointType TransformPoint(InputImagePointType point)
Transform a point from the target image to the source.
bool m_FlgVerbose
Definition: itkMammogramRegistrationFilter.h:243
void SetFileTargetMask(std::string filename)
Set the target mask image filename.
Definition: itkMammogramRegistrationFilter.h:169
void SetFileTarget(std::string filename)
Set the target image filename.
Definition: itkMammogramRegistrationFilter.h:160
itk::ImageFileWriter< InputImageType > FileWriterType
Definition: itkMammogramRegistrationFilter.h:81
DataObject::Pointer MakeOutput(unsigned int idx)
Create the Output.
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
Image dimension.
InputImagePointer RunNonRigidRegistration(void)
The a non-rigid registration.
void SetFileOutputTargetRegistrationMask(std::string fileOut)
Set the output target registration mask filename.
Definition: itkMammogramRegistrationFilter.h:183
MammogramRegistrationFilter Self
Standard class typedefs.
Definition: itkMammogramRegistrationFilter.h:43
unsigned int m_NumberOfLevels
The number of multi-scale registration levels.
Definition: itkMammogramRegistrationFilter.h:259
InputImagePointer m_Source
The source image.
Definition: itkMammogramRegistrationFilter.h:305
void SetFileSourceDistanceTransform(std::string fileOut)
Set the output source mask distance transform image.
Definition: itkMammogramRegistrationFilter.h:192
std::string m_FileTargetMask
The input target mask image filename.
Definition: itkMammogramRegistrationFilter.h:274
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
bool ReadNonRigidDeformationField(std::string fileInputDeformation)
Read the affine transformation.
itk::MammogramMaskSegmentationImageFilter< InputImageType, InputImageType > MammogramMaskFilterType
Definition: itkMammogramRegistrationFilter.h:94
void SetFileOutputAffineTransformation(std::string fileOut)
Set the output affine transformation matrix file.
Definition: itkMammogramRegistrationFilter.h:197
std::string m_FileSource
The input source image filename.
Definition: itkMammogramRegistrationFilter.h:271
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
InputImageType::ConstPointer InputImageConstPointer
Definition: itkMammogramRegistrationFilter.h:60
InputImagePointer m_TargetRegnMask
The target registration mask image.
Definition: itkMammogramRegistrationFilter.h:313
void SetFileOutputAffineRegistered(std::string fileOut)
Set the output affine registered file.
Definition: itkMammogramRegistrationFilter.h:210
void SetDebugOn(void)
Definition: itkMammogramRegistrationFilter.h:100
bool m_FlgDebug
Definition: itkMammogramRegistrationFilter.h:244
unsigned int m_NumberOfLevelsToUse
The number of multi-scale registration levels to use.
Definition: itkMammogramRegistrationFilter.h:261
void SetWorkingDirectory(std::string directory)
Set the working directory for storing any intermediate files.
Definition: itkMammogramRegistrationFilter.h:154
OutputImageType::IndexType OutputImageIndexType
Definition: itkMammogramRegistrationFilter.h:73
void SetSourceImage(InputImagePointer imSource)
Set the source image.
Definition: itkMammogramRegistrationFilter.h:140
std::string m_FileOutputDeformation
The output deformation field.
Definition: itkMammogramRegistrationFilter.h:295
Definition: itkMammogramRegistrationFilter.h:110
EulerAffinePointerType m_AffineTransform
The affine transformation.
Definition: itkMammogramRegistrationFilter.h:316
std::string m_FileInputTargetRegistrationMask
The input target registration mask filename.
Definition: itkMammogramRegistrationFilter.h:279
Definition: itkMammogramRegistrationFilter.h:112
InputImageType::PixelType InputImagePixelType
Definition: itkMammogramRegistrationFilter.h:62
InputImagePointer m_SourceMask
The source mask image.
Definition: itkMammogramRegistrationFilter.h:310
bool m_FlgRegisterNonRigid
Specify whether to perform a non-rigid registration.
Definition: itkMammogramRegistrationFilter.h:250
InputImageType::Pointer InputImagePointer
Definition: itkMammogramRegistrationFilter.h:59
void SetTargetMask(InputImagePointer maskTarget)
Set the target mask.
Definition: itkMammogramRegistrationFilter.h:143
itk::Vector< float, ImageDimension > VectorPixelType
Definition: itkMammogramRegistrationFilter.h:77
void InitialiseTransformationFromImageMoments(InputImagePointer imTarget, InputImagePointer imSource)
Initialise the affine transform using the image moments.
std::string AddSamplingFactorSuffix(std::string fileInput, float ampling)
Create a new filename for a subsampled image.
OutputImageType::RegionType OutputImageRegionType
Definition: itkMammogramRegistrationFilter.h:71
InputImageType::RegionType InputImageRegionType
Definition: itkMammogramRegistrationFilter.h:61
~MammogramRegistrationFilter()
Definition: itkMammogramRegistrationFilter.h:241
FactoryType::EulerAffineTransformType EulerAffineTransformType
Definition: itkMammogramRegistrationFilter.h:89
InputImageType::SpacingType InputImageSpacingType
Definition: itkMammogramRegistrationFilter.h:63
std::string m_DirWorking
A working directory for storing any intermediate files.
Definition: itkMammogramRegistrationFilter.h:264
void Print(void)
Print the object.
void SetVerboseOn(void)
Definition: itkMammogramRegistrationFilter.h:97
std::string m_FileOutputNonRigidRegistered
The output non-rigidly registered image.
Definition: itkMammogramRegistrationFilter.h:300
std::string m_FileOutputNonRigidTransformation
The output non-rigid transformation.
Definition: itkMammogramRegistrationFilter.h:292
OutputImageType::PointType OutputImagePointType
Definition: itkMammogramRegistrationFilter.h:74
void SetFileSourceMask(std::string filename)
Set the source mask image filename.
Definition: itkMammogramRegistrationFilter.h:173
void SetOverwriteRegistration(void)
Definition: itkMammogramRegistrationFilter.h:103
void SetExecutablesDirectoryToTry(std::string dir)
Set the directory to look for executables in.
Definition: itkMammogramRegistrationFilter.h:106
void SetSourceMask(InputImagePointer maskSource)
Set the source mask.
Definition: itkMammogramRegistrationFilter.h:146
float m_ControlPointSpacing
The final control point spacing in mm.
Definition: itkMammogramRegistrationFilter.h:256
void NonRigidlyTransformImageFile(std::string fileImage, std::string fileResult)
Non-rigidly trasnform an image file using the registration.
void SetTypeOfInputImagesToRegister(enumRegistrationImagesType regImagesType)
Set the registration image type.
Definition: itkMammogramRegistrationFilter.h:116
void SetDebugOff(void)
Definition: itkMammogramRegistrationFilter.h:101
std::string m_DirExecutable
A directory to look for executables in.
Definition: itkMammogramRegistrationFilter.h:266
Parameterised Factory Pattern [2] for creating registration objects.
Definition: itkImageRegistrationFactory.h:160
itk::ImageFileReader< InputImageType > FileReaderType
Definition: itkMammogramRegistrationFilter.h:80
std::string ImageFileIsNiftiOrConvert(std::string fileInput)
Check if an image is nifti and create a nifti version if not.
void SetVerboseOff(void)
Definition: itkMammogramRegistrationFilter.h:98
GLsizei const GLcharARB ** string
Definition: glew.h:5194
std::string m_FileOutputAffineTransformation
The output affine transformation matrix.
Definition: itkMammogramRegistrationFilter.h:290
std::string m_FileOutputTargetRegistrationMask
The output target registration mask filename.
Definition: itkMammogramRegistrationFilter.h:282
OutputImageType::Pointer OutputImagePointer
Definition: itkMammogramRegistrationFilter.h:70
Definition: itkMammogramRegistrationFilter.h:37
void SetFileTargetDistanceTransform(std::string fileOut)
Set the output target mask distance transform image.
Definition: itkMammogramRegistrationFilter.h:188