Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

IFMultiImageOp.hpp

00001 #ifndef __IFMultiImageOp__
00002 #define __IFMultiImageOp__
00003 
00004 
00023 #include <stdio.h>
00024 
00025 #include "AnImageOp.hpp"
00026 #include "Float3CImage.hpp"
00027 
00028 
00029 class IFMultiImageOp : public AnImageOp
00030 {
00031 protected:
00032 
00033 bool            fullColor;              // determine if full color is used
00034 
00035 int                     iterations;             // default is 50
00036 
00037 float           minPixelValue;
00038 float           maxPixelValue;
00039 
00040 protected:
00041 
00042 // mono channel
00043 
00044 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00045 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0)
00046                 { return greyFilter(src,dest); }
00047 
00048 // separate color channels
00049 
00050 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00051 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0)
00052                 { return scolorFilter(src,dest); }
00053 
00054 
00055 // full color channels
00056 
00057 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00058 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0)
00059                 { return fcolorFilter(src,dest); }
00060 
00061 public:
00062 IFMultiImageOp(int iter=50, bool colorFlag= false):AnImageOp()
00063         {fullColor= colorFlag; iterations= iter; minPixelValue=0; maxPixelValue=255.0;}
00064 virtual ~IFMultiImageOp(){}
00065 
00066 virtual void setIterations(int iter){iterations= iter;}
00067 
00068 virtual AnImage* filter(AnImage* src, AnImage* dest=0);
00069 virtual AnImage* filter(AR3ChannelConverter* convertor, AnImage* src, AnImage* dest=0);
00070 
00071 virtual AnImage* selectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00072 
00073 virtual AnImage* selectedFilter(AR3ChannelConverter* convertor, AnImage* mask, 
00074                                                                 AnImage* src, AnImage* dest=0);
00075 
00076 virtual void report(FILE* file){}
00077 };
00078 
00079 
00080 #endif
SourceForge.net Logo
Restoreinpaint sourceforge project `C++/Java Image Processing, Restoration, Inpainting Project'.

Bernard De Cuyper: Open Project Leader: Concept, design and development.
Bernard De Cuyper & Eddy Fraiha 2002, 2003. Bernard De Cuyper 2004. Open and free, for friendly usage only.
Modifications on Belgium ground of this piece of artistic work, by governement institutions or companies, must be notified to Bernard De Cuyper.
bern_bdc@hotmail.com