22 theMeanIntensityTarget(
ossim::
nan()),
92 for(
y = 0;
y < upperY; ++
y)
94 for(
x = 0;
x < upperX; ++
x)
116 *buf[0] = result.
getR()/255.0;
117 *buf[1] = result.
getG()/255.0;
118 *buf[2] = result.
getB()/255.0;
224 for(i = 0; i < upper; ++i)
232 result += hsv.
getV();
274 const double delta = targetMean - meanValue;
278 if (inputValue <= meanValue)
280 weight = fabs((inputValue - minValue) / (meanValue - minValue));
284 weight = fabs((maxValue - inputValue) / (maxValue - meanValue));
287 return (inputValue + (delta * weight));
virtual ossim_uint32 getWidth() const
virtual bool isSourceEnabled() const
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
virtual const ossim_float64 * getMaxPix() const
ossimRefPtr< ossimImageData > theBlankTile
virtual ossim_uint32 getNumberOfBands() const
unsigned char getR() const
ossimRefPtr< ossimImageData > theNormTile
void createAndPopulateGrid(const ossimIpt &spacing, double targetMean=.5)
virtual void setImageRectangle(const ossimIrect &rect)
ossimDblGrid theMeanIntensityGrid
double theMeanIntensityTarget
double matchTargetMean(double inputValue, double meanValue, double targetMean, double minValue, double maxValue)
double nan()
Method to return ieee floating point double precision NAN.
This code was derived from https://gist.github.com/mshockwave.
ossim_uint32 height() const
const ossimIpt & ul() const
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
virtual void initialize()
Initialize the data buffer.
virtual ossimObject * dup() const
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &rect, ossim_uint32 resLevel=0)
virtual void initialize()
virtual ~ossimIntensityAdjustmentFilter()
ossimIntensityAdjustmentFilter()
static ossimImageDataFactory * instance()
virtual ossimDataObjectStatus validate() const
virtual void initialize()
ossimImageSource * theInputConnection
ossimRefPtr< ossimImageData > theTile
unsigned int ossim_uint32
32 bit normalized floating point
virtual ossimIrect getImageRectangle() const
unsigned char getB() const
void setNearestNode(const ossimDpt &uv_point, const double &value)
virtual void copyTileToNormalizedBuffer(ossim_float64 *buf) const
Copies entire tile to buf passed in.
virtual void copyNormalizedBufferToTile(ossim_float64 *buf)
Copies buf passed in to tile.
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
ossim_uint32 width() const
RTTI_DEF1(ossimIntensityAdjustmentFilter, "ossimIntensityAdjustmentFilter", ossimImageSourceFilter)
virtual const ossim_float64 * getMinPix() const
unsigned char getG() const
virtual const void * getBuf() const
void loadNormTile(ossimRefPtr< ossimImageData > &data)
double computeMeanIntensity(ossimRefPtr< ossimImageData > &data)
unsigned char ossim_uint8
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.