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 mitkRegionGrowingTool_h_Included
00019 #define mitkRegionGrowingTool_h_Included
00020
00021 #include "mitkFeedbackContourTool.h"
00022 #include "MitkExtExports.h"
00023
00024 struct mitkIpPicDescriptor;
00025
00026 namespace mitk
00027 {
00028
00055 class MitkExt_EXPORT RegionGrowingTool : public FeedbackContourTool
00056 {
00057 public:
00058
00059 mitkClassMacro(RegionGrowingTool, FeedbackContourTool);
00060 itkNewMacro(RegionGrowingTool);
00061
00062 virtual const char** GetXPM() const;
00063 virtual const char* GetName() const;
00064
00065 protected:
00066
00067 RegionGrowingTool();
00068 virtual ~RegionGrowingTool();
00069
00070 virtual void Activated();
00071 virtual void Deactivated();
00072
00073 virtual bool OnMousePressed (Action*, const StateEvent*);
00074 virtual bool OnMousePressedInside (Action*, const StateEvent*, mitkIpPicDescriptor* workingPicSlice, int initialWorkingOffset);
00075 virtual bool OnMousePressedOutside (Action*, const StateEvent*);
00076 virtual bool OnMouseMoved (Action*, const StateEvent*);
00077 virtual bool OnMouseReleased(Action*, const StateEvent*);
00078
00079 mitkIpPicDescriptor* PerformRegionGrowingAndUpdateContour();
00080
00081 Image::Pointer m_ReferenceSlice;
00082 Image::Pointer m_WorkingSlice;
00083
00084 int m_LowerThreshold;
00085 int m_UpperThreshold;
00086 int m_InitialLowerThreshold;
00087 int m_InitialUpperThreshold;
00088
00089 Point2I m_LastScreenPosition;
00090 int m_ScreenYDifference;
00091
00092 private:
00093
00094 mitkIpPicDescriptor* SmoothIPPicBinaryImage( mitkIpPicDescriptor* image, int &contourOfs, mitkIpPicDescriptor* dest = NULL );
00095 void SmoothIPPicBinaryImageHelperForRows( mitkIpPicDescriptor* source, mitkIpPicDescriptor* dest, int &contourOfs, int* maskOffsets, int maskSize, int startOffset, int endOffset );
00096
00097 mitkIpPicDescriptor* m_OriginalPicSlice;
00098 int m_SeedPointMemoryOffset;
00099
00100 ScalarType m_VisibleWindow;
00101 ScalarType m_DefaultWindow;
00102 ScalarType m_MouseDistanceScaleFactor;
00103
00104 int m_PaintingPixelValue;
00105 int m_LastWorkingSeed;
00106
00107 bool m_FillFeedbackContour;
00108 };
00109
00110 }
00111
00112 #endif
00113
00114