00001 #ifndef _DLMORPHOLOGY_H_ 00002 #define _DLMORPHOLOGY_H_ 00003 00004 #include "DLImage.h" 00005 #include "DLConst.h" 00006 00019 class DLMorphology 00020 { 00021 public: 00022 00027 DLMorphology(); 00028 00033 DLMorphology(const DLMorphology & orig); 00034 00039 const DLMorphology & operator=(const DLMorphology & right); 00040 00041 00042 00046 virtual ~DLMorphology(); 00049 00050 //* Sets kernel to be used in morphological operations 00051 //* \param data DL_BYTE* kernel data 00052 //* \param width int of kernel 00053 //* \param height int of kernel 00054 //*/ 00055 //void dlSetKernel(DL_BYTE* data, int width, int height); 00056 00058 //* Gets kernel width 00059 //* \return kernel width 00060 //*/ 00061 //int dlGetKernelWidth (); 00062 00064 //* Gets kernel height 00065 //* \return height of kernel 00066 //*/ 00067 //int dlGetKernelHeight(); 00068 00070 //* Gets kernel used in morphological operations 00071 //* \return kernel 00072 //*/ 00073 //DL_BYTE dlGetKernel(); 00081 static DLImage dlClose(const DLImage& image, int numberOfTimes); 00082 00089 static DLImage dlOpen(const DLImage& image, int numberOfTimes); 00104 static DLImage dlDilate(const DLImage& image, int numberOfTimes); 00105 00119 static DLImage dlErode(const DLImage& image, int numberOfTimes); 00120 00141 static DLImage dlSharpen(const DLImage& image, int numberOfTimes); 00142 00163 static DLImage dlBlur(const DLImage& image, int numberOfTimes = 1); 00164 00195 static DLImage dlMask(const DLImage& image, double* mask[], int length); 00196 00197 protected: 00199 DL_BYTE* kernel; 00200 00202 int kernelWidth; 00203 00205 int kernelHeight; 00206 00207 };//end class 00208 00209 #endif //_DLMORPHOLOGY_H_