00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freMutualInformationHistogramMetricController_h
00023 #define __freMutualInformationHistogramMetricController_h
00024
00025 #include "freHistogramMetricControllerBase.h"
00026
00027 #include "itkMutualInformationHistogramImageToImageMetric.h"
00028
00029 namespace FREE
00030 {
00031
00042 freControllerIDMacro(MutualInformationHistogramMetricControllerBase, "MutualInformationHistogramMetricBase");
00043 template <class TImageType>
00044 class MutualInformationHistogramMetricControllerBase : public HistogramMetricControllerBase< itk::MutualInformationHistogramImageToImageMetric<TImageType,TImageType> >
00045 {
00046 public:
00047 typedef itk::MutualInformationHistogramImageToImageMetric<TImageType,TImageType> ComponentType;
00048 typedef HistogramMetricControllerBase<ComponentType> Superclass;
00049
00050 itkTypeMacro(MutualInformationHistogramMetricControllerBase, HistogramMetricControllerBase);
00051
00052 protected:
00055 MutualInformationHistogramMetricControllerBase()
00056 {
00057
00058 this->UpdateControllerID(ControllerID::MutualInformationHistogramMetricControllerBase);
00059 this->m_Description = "A mutual information metric using the intensity histograms.";
00060 };
00061
00062 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00063 const SessionComponentCache* pComponentCache,
00064 bool bRegardOldSetup) const
00065 {
00066 Superclass::GenerateProfile(profile,pComponentCache,bRegardOldSetup);
00067 };
00068
00069 };
00070
00081 freControllerIDMacro(MutualInformationHistogram2DMetricController, "Mutual Information Histogram 2D Metric");
00082 class MutualInformationHistogram2DMetricController : public MutualInformationHistogramMetricControllerBase<InternalImage2DType>
00083 {
00084 public:
00085 itkTypeMacro(MutualInformationHistogram2DMetricController, MutualInformationHistogramMetricControllerBase);
00086
00087 MutualInformationHistogram2DMetricController();
00088 };
00089
00100 freControllerIDMacro(MutualInformationHistogram3DMetricController, "Mutual Information Histogram 3D Metric");
00101 class MutualInformationHistogram3DMetricController : public MutualInformationHistogramMetricControllerBase<InternalImage3DType>
00102 {
00103 public:
00104 itkTypeMacro(MutualInformationHistogram3DMetricController, MutualInformationHistogramMetricControllerBase);
00105
00106 MutualInformationHistogram3DMetricController();
00107 };
00108
00109 }
00110
00111 #endif