00001
00002 00004
00005 #if !defined(AFX_MORPHO_H__89876E01_9C5E_11D4_B182_F40EF866FB4A__INCLUDED_)
00006 #define AFX_MORPHO_H__89876E01_9C5E_11D4_B182_F40EF866FB4A__INCLUDED_
00007
00008 #ifndef SWIG // Remove whatever is not needed by SWIG
00009
00010 #if _MSC_VER >= 1000
00011 #pragma once
00012 #endif // _MSC_VER >= 1000
00013
00014
00015
00016
00017
00018
00019 #undef min
00020 #undef max
00021 #include <limits>
00022 using namespace std;
00023
00024 #include "Error.h"
00025 #include "ImageGrey.h"
00026 #include "FiFo.h"
00027
00028 #endif // SWIG
00029
00030
00049 class CMorpho : public CError
00050 {
00052 virtual CImageGrey * dilate(CImageGrey *in, CImageGrey *out) = 0;
00054 virtual CImageGrey * erode(CImageGrey *in, CImageGrey *out) = 0;
00055
00056 public:
00057
00058 #ifndef SWIG
00059 CMorpho();
00060 virtual ~CMorpho();
00061 #endif
00062
00064 CImageGrey * dilate(CImageGrey *in, int size);
00066 CImageGrey * erode(CImageGrey *in, int size);
00068 CImageGrey * close(CImageGrey *in, int size);
00070 CImageGrey * open(CImageGrey *in, int size);
00071
00073 virtual CImageGrey * chamfer(CImageGrey *in, short mode = 0) = 0;
00075 virtual CImageGrey *geodesicErosion(CImageGrey *mark, CImageGrey *ref, int border) = 0;
00077 virtual CImageGrey *geodesicDilation(CImageGrey *mark, CImageGrey *ref, int border) = 0;
00079 CImageGrey * regionalMaximum(CImageGrey *in);
00081 CImageGrey * regionalMinimum(CImageGrey *in);
00083 CImageGrey * localMaximum(CImageGrey *in);
00085 CImageGrey * localMinimum(CImageGrey *in);
00086
00088
00093 virtual CImageGrey * watershed(CImageGrey *in) = 0;
00094
00096
00101 virtual CImageGrey * skeleton_anchor (CImageGrey *in, CImageGrey *anchor) = 0;
00103
00108 virtual CImageGrey * skeletonTalbotVincent (CImageGrey *in, CImageGrey *anchor) = 0;
00110 CImageGrey * skeletonMinimal(CImageGrey *in);
00112 CImageGrey * skeleton(CImageGrey *in);
00113
00115 virtual CImageGrey * connectedComponents(CImageGrey *in) = 0;
00116
00117
00118 };
00119
00120 #endif // !defined(AFX_MORPHO_H__89876E01_9C5E_11D4_B182_F40EF866FB4A__INCLUDED_)