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