/usr/include/ossim/imaging/ossimHistogramEqualization.h is in libossim-dev 1.7.21-3ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | //*******************************************************************
// Copyright (C) 2000 ImageLinks Inc.
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: Garrett Potts
//
//*************************************************************************
// $Id: ossimHistogramEqualization.h 11721 2007-09-13 13:19:34Z gpotts $
#ifndef ossimHistogramEqualization_HEADER
#define ossimHistogramEqualization_HEADER
#include <ossim/imaging/ossimImageSourceHistogramFilter.h>
class OSSIMDLLEXPORT ossimHistogramEqualization : public ossimImageSourceHistogramFilter
{
public:
ossimHistogramEqualization();
ossimHistogramEqualization(ossimImageSource* inputSource,
ossimRefPtr<ossimMultiResLevelHistogram> histogram);
ossimHistogramEqualization(ossimImageSource* inputSource,
ossimRefPtr<ossimMultiResLevelHistogram> histogram,
bool inverseFlag);
virtual ~ossimHistogramEqualization();
virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect,
ossim_uint32 resLevel=0);
virtual void setHistogram(ossimRefPtr<ossimMultiResLevelHistogram> histogram);
virtual bool setHistogram(const ossimFilename& filename);
virtual bool getInverseFlag()const;
virtual void initialize();
virtual void setInverseFlag(bool inverseFlag);
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=NULL);
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=NULL)const;
virtual std::ostream& print(std::ostream& out) const;
protected:
/**
* Called on first getTile, will initialize all data needed.
*/
void allocate();
ossimRefPtr<ossimImageData> theTile;
/*!
* This will be used in some of the histogram
* based operations.
*/
ossimRefPtr<ossimMultiResLevelHistogram> theAccumulationHistogram;
/*!
* Indicates if you should equalize or unequalize an input stream.
* If the inverse flag is true then it will indicate that we should
* assume that the input stream is already equalized and we should
* invert based on the current accumulation histogram.
*
*
* This flag is defaulted to false.
*/
bool theInverseFlag;
/*!
* We will create a LUT for each band that directly maps
* an input value to an equalized output.
*/
vector<double*> theForwardLut;
/*!
* We will create a LUT for each band that directly maps
* an input value to an un-equalized output.
*/
vector<double*> theInverseLut;
std::vector<ossim_uint32> theBandList;
virtual void computeAccumulationHistogram();
template<class T>
ossimRefPtr<ossimImageData> runEqualizationAlgorithm(T dummyVariable,
ossimRefPtr<ossimImageData> tile);
/*!
* We will pre-compute the luts for the forward and inverse
* equalization. Note: the inverse is a little more tricky
* and since we must fill the empty spots missed by the
* inverse. We use a linear interpolation between valid
* values for this.
*/
virtual void initializeLuts();
virtual void deleteLuts();
TYPE_DATA
};
#endif /* #ifndef ossimHistogramEqualization_HEADER */
|