00001 #ifndef __SusanRestoration__ 00002 #define __SusanRestoration__ 00003 00005 // Susan Restoration 00006 // ======================== 00007 // 00008 // Group: Eggs and Pictures. 00009 // Author: Bernard De Cuyper 00010 // Date: 16/01/2004 00011 // 00012 // Purpose: Restoration removing impulse noise and preserving edges and corners 00013 // 00014 // Paper: "Susan, a new approach to low level image processing.", 00015 // Smith & Brady, IJCV 1996. 00016 // 00017 // Copyrights: Bernard De Cuyper & Eddy Fraiha 2004, 00018 // Eggs & Pictures. 00019 // MIT/Open BSD copyright model. 00020 // 00022 00023 #include "AnImageOp.hpp" 00024 00025 00026 class SusanRestoration : public AnImageOp 00027 { 00028 private: 00029 00030 int iterations; 00031 00032 int nkernel; 00033 int* ki; 00034 int* kj; 00035 double* exp_Rij; 00036 00037 double t; // minimum contrast threshold gvalue 00038 double sigma; 00039 00040 00041 public: 00042 00043 SusanRestoration(int iter=2, double contrast=12.0, double sigma=7.0); 00044 ~SusanRestoration(){delete[] ki; delete[] kj; delete[] exp_Rij;} 00045 00046 AnImage* filter(AnImage* src, AnImage* dest); 00047 }; 00048 00049 #endif