00001
00011 #ifndef HxSF_h
00012 #define HxSF_h
00013
00014
00015 #include "HxImageRep.h"
00016 #include "HxImageSignature.h"
00017
00018
00019
00043 class L_HXIMAGEREP HxSF{
00044 public:
00045
00047
00049 HxSF();
00050
00052 HxSF(const HxSF&);
00053
00054 HxSF(HxImageRep im, bool sym, bool decomp, int conn);
00055
00056 HxSF(HxImageRep imH, HxImageRep imV, bool sym, bool decomp, int conn);
00057
00058 HxSF(HxImageRep im, HxImageRep imH, HxImageRep imV, bool sym, bool decomp, int conn);
00060
00062
00063 ~HxSF();
00064
00066
00068
00070 HxSF& operator=(const HxSF&);
00071
00073
00074
00075 HxImageRep getKernel() const;
00076 HxImageRep getHorizontalKernel() const;
00077 HxImageRep getVerticalKernel() const;
00078
00079 bool isSeparable() const;
00080 bool isSymetric() const;
00081
00082 int getConnectivity() const;
00083
00084
00085
00089 HxSF dilateSF(int n);
00090 HxSF erodeSF(int n);
00091
00097 HxSF rotateSF(int theta, bool sense);
00098
00099
00100 private:
00101
00102 friend class HxSFFactory;
00103
00105 HxSizes size;
00106
00108 HxValue value;
00109
00110
00112 bool separable;
00113
00115 bool symetric;
00116
00117
00119 int connectivity;
00120
00122 HxImageSignature sig;
00123
00125 HxImageRep se;
00126
00128 HxImageRep seH;
00130 HxImageRep seV;
00131 };
00132
00133
00134 #endif