00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freImageDifferenceSOMetricThread.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freImageDifferenceSOMetricThread_h 00023 #define __freImageDifferenceSOMetricThread_h 00024 00025 #include "freSetupOptimizationMetricThreadBase.h" 00026 00027 #include "freImageDifferenceSOMetricMonitor.h" 00028 #include "freIDPath.h" 00029 #include "freSessionInfo.h" 00030 00031 namespace FREE 00032 { 00033 00047 template <unsigned int VImageDimension> 00048 class ITK_EXPORT ImageDifferenceSOMetricThread : 00049 public SetupOptimizationMetricThreadBase<ImageDifferenceSOMetricMonitor> 00050 { 00051 public: 00053 typedef ImageDifferenceSOMetricThread<VImageDimension> Self; 00054 typedef SetupOptimizationMetricThreadBase<ImageDifferenceSOMetricMonitor> Superclass; 00055 typedef itk::SmartPointer<Self> Pointer; 00056 typedef itk::SmartPointer<const Self> ConstPointer; 00057 00058 typedef typename Superclass::ThreadIDType ThreadIDType; 00059 typedef typename Superclass::MonitorType MonitorType; 00060 typedef typename Superclass::ResultType ResultType; 00061 00063 itkTypeMacro( ImageDifferenceSOMetricThread<VImageDimension>, SetupOptimizationMetricThreadBase<ImageDifferenceSOMetricMonitor> ); 00064 itkNewMacro(Self); 00065 00066 void SetResultImagePath(const IDPath& path); 00067 const IDPath& GetResultImagePath() const; 00068 00069 void SetReferenceImagePath(const IDPath& path); 00070 const IDPath& GetReferenceImagePath() const; 00071 00072 protected: 00073 00074 ImageDifferenceSOMetricThread(); 00075 00076 virtual ~ImageDifferenceSOMetricThread(); 00077 00078 virtual bool ProcessSetup(Setup* pAdaptationSetup) throw(); 00079 00080 typedef typename ImageTypes<VImageDimension>::InternalImageType ImageType; 00081 00084 void EvaluateResult(ImageType* pResultImage, ImageType* pReferenceImage); 00085 00086 IDPath m_ResultImagePath; 00087 IDPath m_ReferenceImagePath; 00088 00089 private: 00090 ImageDifferenceSOMetricThread(const Self&); //purposely not implemented 00091 void operator=(const Self&); //purposely not implemented 00092 }; 00093 00094 } // end namespace FREE 00095 00096 #ifndef ITK_MANUAL_INSTANTIATION 00097 #include "freImageDifferenceSOMetricThread.txx" 00098 #endif 00099 00100 #endif 00101 00102 00103
1.5.3 written by Dimitri van Heesch,
© 1997-2000