////////////////////////////////////////////////////////////
// File: iplut.hpp
// Description: ImagePoinLut - point lookup table
//
// Author: C Dare-Edwards
// Copyright Conrad Dare-Edwards 1997
typedef ImageTList<ImagePoint> ImagePList;
class ImagePointLut : public ImageLut
{
public:
enum colour { RED, GREEN, BLUE };
// constructors
ImagePointLut( void );
ImagePointLut( const ImagePointLut& newlut );
ImagePointLut( const ImagePList& newpoints );
// histogram equalisation ( produces a lot of points )
void Equalise( const ImageHist& hist );
// invert the y and or the x axis
void Invert( BOOL xaxis = FALSE, BOOL yaxis = TRUE );
// Minimum to Maximum routines
void SetMinToMax( int min, int max, colour type = RED);
void SetMinToMax( const ImageHist& hist, colour type =RED);
// optimize the mimimum and maximum
void OptimiseMinMax(const ImageHist& hist,int& min,int& max);
// three point optimized lookup table
void Optimise( const ImageHist& hist, colour type =RED);
// logorithmic curve between points
void SetLog( const ImageHist& hist );
void SetLog( int min, int max );
// exponential curve between points
void SetExp( const ImageHist& hist );
void SetExp( int min, int max );
// compute new table from list
void Update( BOOL tidy = FALSE);
void BuildPointList( void );
private:
// check and sort list
void SortPointList( void );
// tidy up list removing redundant points
void TidyPointList( void );
// the point list
ImagePList m_PointList;
};
//End of File