/* * Copyright (c) ICG. All rights reserved. * * Institute for Computer Graphics and Vision * Graz, University of Technology / Austria * * * 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. * * * Project : projects * Module : MIPViewer - plugins * Class : $RCSfile: CTNonlinearRegistrationInterface.h,v $ * Language : C++ * Description : * * Author : Martin Urschler * EMail : urschler@icg.tu-graz.ac.at * Date : $Date: 2007-07-04 13:53:53 $ * Version : $Revision: 1.25 $ * Full Id : $Id: CTNonlinearRegistrationInterface.h,v 1.25 2007-07-04 13:53:53 urschler Exp $ * */ #ifndef _CTNONLINEARREGISTRATIONINTERFACE_H_ #define _CTNONLINEARREGISTRATIONINTERFACE_H_ #include "CTNonlinearRegistrationReturnValue.h" #include /** * the interface class for the different nonlinear registration methods * */ template< typename TPixelDataType > class CTNonlinearRegistrationInterface { typedef CTNonlinearRegistrationInterface Self; public: CTNonlinearRegistrationInterface() : m_displacementFieldFilename(""), m_imageOutputFilename(""), m_resampleDefaultValue(0) {}; ~CTNonlinearRegistrationInterface() {}; void setDisplacementFieldFilename( const std::string& displacementFieldFilename ) { m_displacementFieldFilename = displacementFieldFilename; } void setResampleDefaultValue( const int resampleDefaultValue ) { m_resampleDefaultValue = resampleDefaultValue; } void setImageFilenames( const std::string& fixedFilename, const std::string& movingFilename ) { m_fixedFilename = fixedFilename; m_movingFilename = movingFilename; } void setImageOutputFilename( const std::string& outputFilename ) { m_imageOutputFilename = outputFilename; } CTNonlinearRegistration::ReturnType standardDemonsMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const unsigned int maxNrShrinkLevels, const unsigned int iterationsParam1, const unsigned int iterationsParam2 ); CTNonlinearRegistration::ReturnType symmetricDemonsMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const unsigned int maxNrShrinkLevels, const unsigned int iterationsParam1, const unsigned int iterationsParam2 ); CTNonlinearRegistration::ReturnType curvatureMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const unsigned int maxNrShrinkLevels, const unsigned int iterationsParam1, const unsigned int iterationsParam2 ); CTNonlinearRegistration::ReturnType levelSetMotionMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const unsigned int maxNrShrinkLevels, const unsigned int iterationsParam1, const unsigned int iterationsParam2 ); CTNonlinearRegistration::ReturnType fastBlockMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const float regularization, const float similarity, const unsigned int levelsNotToCompute ); CTNonlinearRegistration::ReturnType diffeomorphicDemonsMatching( TPixelDataType * fixedPtr, const int fixedSlices, const int fixedRows, const int fixedCols, const float fixedSliceDistance, const float fixedInplaneVoxelSizeX, const float fixedInplaneVoxelSizeY, TPixelDataType * movingPtr, const int movingSlices, const int movingRows, const int movingCols, const float movingSliceDistance, const float movingInplaneVoxelSizeX, const float movingInplaneVoxelSizeY, const unsigned int maxNrShrinkLevels, const unsigned int iterationsParam1, const unsigned int iterationsParam2, const float sigmaDeformationField, const float sigmaUpdateField, const float maxLengthUpdateField, const unsigned int demonsForceGradientType ); private: CTNonlinearRegistrationInterface( const Self& ); Self& operator=( const Self& ); std::string m_displacementFieldFilename; std::string m_fixedFilename; std::string m_movingFilename; std::string m_imageOutputFilename; int m_resampleDefaultValue; }; #endif // _CTNONLINEARREGISTRATIONINTERFACE_H_