OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimMultiResLevelHistogram.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts (gpotts@imagelinks.com)
6 //
7 // Description:
8 //
9 //*******************************************************************
10 // $Id: ossimMultiResLevelHistogram.h 15766 2009-10-20 12:37:09Z gpotts $
11 #ifndef ossimMultiResLevelHistogram_HEADER
12 #define ossimMultiResLevelHistogram_HEADER
13 #include <vector>
17 #include <ossim/base/ossimRefPtr.h>
20 
22 {
23 public:
25  ossimMultiResLevelHistogram(ossim_uint32 numberOfResLevels);
27  virtual ~ossimMultiResLevelHistogram();
28 
29 
30  ossimRefPtr<ossimHistogram> getHistogram(ossim_uint32 band,
31  ossim_uint32 resLevel=0);
32  const ossimRefPtr<ossimHistogram> getHistogram(ossim_uint32 band,
33  ossim_uint32 resLevel=0)const;
34  ossim_uint32 getNumberOfResLevels()const;
35  ossim_uint32 getNumberOfBands(ossim_uint32 resLevel=0) const;
36  void create(ossim_uint32 numberOfResLevels);
37  ossimRefPtr<ossimMultiBandHistogram> getMultiBandHistogram(ossim_uint32 resLevel) const;
38  ossimRefPtr<ossimMultiResLevelHistogram> createAccumulationLessThanEqual()const;
39  ossimRefPtr<ossimMultiResLevelHistogram> createAccumulationGreaterThanEqual()const;
40 
41  void setBinCount(double binNumber, double count);
45  virtual void addHistogram(ossimMultiBandHistogram* histo);
46 
51  virtual ossimRefPtr<ossimMultiBandHistogram> addHistogram();
52 
60  virtual bool setHistogram(ossimRefPtr<ossimMultiBandHistogram> histo, ossim_uint32 resLevel);
61 
62  virtual ossimFilename getHistogramFile() const;
63  virtual bool importHistogram(const ossimFilename& inputFile);
64  virtual bool importHistogram(std::istream& in);
65 
66  virtual bool loadState(const ossimKeywordlist& kwl,
67  const char* prefix=0);
68  virtual bool saveState(ossimKeywordlist& kwl,
69  const char* prefix=0)const;
70 
71 protected:
73  {
74  public:
76 
77  bool parseStream(std::istream& in);
78 
80  {
81  return theNumberOfResLevels.toUInt32();
82  }
83  void clear()
84  {
85  theFileType = "";
86  theVersion = "";
87  theCreatorId = "";
88  theNumberOfResLevels = "";
89  }
94  };
95 
96  std::vector<ossimRefPtr<ossimMultiBandHistogram> > theHistogramList;
98 
99  void deleteHistograms();
100  bool parseProprietaryHistogram(std::istream& in);
101 };
102 
103 #endif
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
ossimReferenced allows for shared object ref counting if the reference count ever gets to 0 or less i...
std::vector< ossimRefPtr< ossimMultiBandHistogram > > theHistogramList
unsigned int ossim_uint32
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20