00001 #ifndef _OKAN_MOS_H 00002 #define _OKAN_MOS_H 00003 00004 #include "OkanMisc.h" 00005 00006 #include <string> 00007 00008 #define NEAR_NEIG 0 00009 #define BILINEAR 1 00010 #define BICUBIC 2 00011 00012 using namespace std; 00013 00019 class OkanMos 00020 { 00021 public: 00025 IplImage* image[2]; 00026 00030 double line[6]; 00031 00035 uchar **realMask; 00036 00042 CvMat* homMat[2]; 00043 00048 double shadeMul[3]; 00049 00054 double shadeAdd[3]; 00055 00063 void removeShade( IplImage* &i0 , IplImage* &i1 , CvMat* &m0 , CvMat* &m1 ); 00064 00072 void makeMosaic( int interpolationType , uchar** im1Mask = NULL ); 00073 00079 uchar makeUImagePixel( double x); 00080 00081 public: 00082 00086 OkanMos(); 00087 00091 ~OkanMos(); 00092 00098 void getMosaic( IplImage ** im , uchar *** mask , double imLine[6] = NULL ); 00099 00104 void setBaseImage( IplImage* i0 , uchar** i0mask = NULL , double i0line[6] = NULL ); 00105 00116 void addSucImage( IplImage* suc , CvMat* mbase , CvMat* msuc , int interpolationType , uchar** i1mask = NULL ); 00117 }; 00118 00119 #endif 00120