Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef mitkCorrectorAlgorithmhIncluded
00019 #define mitkCorrectorAlgorithmhIncluded
00020
00021 #include "mitkImageToImageFilter.h"
00022 #include "MitkExtExports.h"
00023 #include "mitkContour.h"
00024 #include "ipSegmentation.h"
00025
00026 #include <itkImage.h>
00027
00028 namespace mitk
00029 {
00030
00050 class MitkExt_EXPORT CorrectorAlgorithm : public ImageToImageFilter
00051 {
00052 public:
00053
00054 mitkClassMacro(CorrectorAlgorithm, ImageToImageFilter);
00055 itkNewMacro(CorrectorAlgorithm);
00056
00060 itkSetMacro(Contour, Contour*);
00061
00065 itkGetObjectMacro(DifferenceImage, Image);
00066
00067 protected:
00068
00069
00070 typedef struct
00071 {
00072 int lineStart;
00073 int lineEnd;
00074 bool modified;
00075 }
00076 TSegData;
00077
00078 CorrectorAlgorithm();
00079 virtual ~CorrectorAlgorithm();
00080
00081
00082 virtual void GenerateData();
00083
00084 void TobiasHeimannCorrectionAlgorithm(mitkIpPicDescriptor* pic);
00085 bool modifySegment( int lineStart, int lineEnd, ipMITKSegmentationTYPE state, mitkIpPicDescriptor *pic, int* _ofsArray );
00086
00087 void CalculateDifferenceImage( Image* modifiedImage, Image* originalImage );
00088 template<typename TPixel, unsigned int VImageDimension>
00089 void ItkCalculateDifferenceImage( itk::Image<TPixel, VImageDimension>* originalImage, Image* modifiedMITKImage );
00090
00091 Image::Pointer m_WorkingImage;
00092 Contour::ConstPointer m_Contour;
00093 Image::Pointer m_DifferenceImage;
00094 };
00095
00096 }
00097
00098 #endif
00099