00001 #ifndef _IGS_IMAGEFLOAT1 00002 #define _IGS_IMAGEFLOAT1 00003 00004 #include "IGS_ImageChannel1.h" 00005 #include "IGS_Filter.h" 00006 00007 class IGS_ImageFloat1: 00008 public IGS_ImageChannel1 00009 { 00010 public: 00011 IGS_ImageFloat1(); 00012 ~IGS_ImageFloat1(); 00013 void AddBorder( const int width, const float value ); 00014 void FileSave( const char* filename ) const; 00015 void FileLoad( const char* filename ); 00016 void FindMax( int& xMax, int& yMax, float absoluteMax = 1000 ) const; 00017 virtual const void* const GetBuffer() const; 00018 virtual void*& GetBuffer(); 00019 void GetGradient( const int x, const int y, float& xg, float& yg ); 00020 float GetPixel( const int x, const int y ) const; 00021 virtual float GetPixelFloat1( const int x ,const int y ) const; 00022 virtual void Initialize(); 00023 IGS_ImageFloat1& operator=( const IGS_ImageChannel1& right ); 00024 IGS_ImageFloat1& operator=( const IGS_ImageFloat1& right ); 00025 IGS_ImageFloat1& operator=( const float right ); 00026 IGS_ImageFloat1& operator+=( const IGS_ImageFloat1& right ); 00027 IGS_ImageFloat1& operator*=( const IGS_ImageFloat1& right ); 00028 IGS_ImageFloat1& operator*=( const float f ); 00029 void OperationAbs(); 00030 void OperationBlur(); 00031 void OperationDilate( const float maxRadius ); 00032 void OperationIncrease( const float f ); 00033 void OperationInvert(); 00034 void OperationFilter( const IGS_FilterMatrixFloat f, IGS_ImageFloat1& output ); 00035 void OperationRangeStretch( const float low, const float hi ); 00036 void OperationScale( const float f ); 00037 void OperationThreshold( const float f ); 00038 void PutPixel( const int x, const int y, float newValue ); 00039 virtual void PutPixelFloat1( const int x, const int y, const float value ); 00040 protected: 00041 float* pixels; 00042 }; 00043 00044 #endif