/usr/include/ossim/imaging/ossimU16ImageData.h is in libossim-dev 1.8.16-3+b1.
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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | //*******************************************************************
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: David Burken
//
// Description:
//
// Class declaration of ossimU16ImageData. Specialized image data object for
// unsigned short data.
//
// NOTE: This object is optimized for unsigned short data and assumes the
// following: null pixel value = 0.0
// min pixel value = 1.0
// max pixel value = 65536.0 (2^16 - 1)
//
// If you want anything else use the less efficient ossimImageData.
//
//*************************************************************************
// $Id: ossimU16ImageData.h 16052 2009-12-08 22:20:40Z dburken $
#ifndef ossimU16ImageData_HEADER
#define ossimU16ImageData_HEADER
#include <ossim/imaging/ossimImageData.h>
#include <ossim/imaging/ossimNormalizedU16RemapTable.h>
class OSSIMDLLEXPORT ossimU16ImageData : public ossimImageData
{
public:
ossimU16ImageData(ossimSource* source,
ossim_uint32 bands = 1);
ossimU16ImageData(ossimSource* source,
ossim_uint32 bands,
ossim_uint32 width,
ossim_uint32 height);
ossimU16ImageData(const ossimU16ImageData &rhs);
/*!
* Perform object duplication.
*/
virtual ossimObject* dup()const;
/*!
* will fill the entire band with
* the value.
*/
void fill(ossim_uint32 band, double value);
/*!
* will fill all bands with the passed in
* value.
*/
void fill(double value);
virtual ossimDataObjectStatus validate() const;
/*!
* will go to the band and offset and compute the
* normalized float and return it back to the
* caller through the result argument.
*/
virtual void getNormalizedFloat(ossim_uint32 offset,
ossim_uint32 bandNumber,
float& result)const;
/*!
* This will assign to this object a normalized
* value by unnormalizing to its native type.
*/
virtual void setNormalizedFloat(ossim_uint32 offset,
ossim_uint32 bandNumber,
float input);
/*!
* Will use the memory that you pass in to normalize
* this data object.
*/
virtual void convertToNormalizedFloat(ossimImageData* result)const;
/*!
* Will use the memory that you pass in to normalize
* this data object.
*/
virtual void convertToNormalizedDouble(ossimImageData* result)const;
/*!
* Will take the normalized input and convert it
* to this tile's data type. Example: if this
* tile is of type UCHAR and its input is of type
* NORALIZED_FLOAT it will unnormalize the data by
* doing:
*
* minPix + normalizedInput*(maxPix-minPix)
*
* on a per band basis.
*/
virtual void unnormalizeInput(ossimImageData* normalizedInput);
/*!
* This will compute the average value for the band.
*/
virtual double computeAverageBandValue(ossim_uint32 bandNumber = 0);
/*!
* This will call the compute average band value and then
* use that in the calculation of:
* It will then do a SUM[(Mean - Actual)^2]/width*height.
*
* This is the average variance from the passed in
* mean. Basically think of the mean as a completely
* grey image and we would like to see how this
* image varies from the passed in mean.
*/
virtual double computeMeanSquaredError(double meanValue,
ossim_uint32 bandNumber = 0);
virtual void setValue(long x, long y, double color);
/*!
* Copies entire tile to buf passed in. Data put in buf is normalized.
* The "buf" passed to method is assumed to be at least as big as:
* "getSize() * sizeof(double)"
*/
virtual void copyTileToNormalizedBuffer(double* buf) const;
/*!
* Copies buf passed in to tile. Data is unnormalized to the tile's
* scalar type.
* The "buf" passed to method is assumed to be at least as big as the tiles:
* "getSize() * sizeof(double)"
*/
virtual void copyNormalizedBufferToTile(double* buf);
/*!
* Will copy this tiles specified band number to the normalized buffer.
* if the band is out of range then nothing is done and returns.
*/
virtual void copyTileToNormalizedBuffer(ossim_uint32 band, double* buf) const;
virtual void copyTileToNormalizedBuffer(ossim_uint32 band, float* buf)const;
/*!
* Copies entire tile to buf passed in. Data put in buf is normalized.
* The "buf" passed to method is assumed to be at least as big as:
* "getSize() * sizeof(double)"
*/
virtual void copyTileToNormalizedBuffer(float* buf) const;
/*!
* Copies buf passed in to tile. Data is unnormalized to the tile's
* scalar type.
* The "buf" passed to method is assumed to be at least as big as the tiles:
* "getSize() * sizeof(double)"
*/
virtual void copyNormalizedBufferToTile(float* buf);
/*!
* Will copy the normalized buffer to this tiles
* specified band. If band is out of range then nothing
* is done and returns.
*/
virtual void copyNormalizedBufferToTile(ossim_uint32 band,
double* buf);
virtual void copyNormalizedBufferToTile(ossim_uint32 band,
float* buf);
/** @return The first non-null index of the normalized remap table. */
virtual ossim_float64 getMinNormalizedPix() const;
protected:
virtual ~ossimU16ImageData();
ossimU16ImageData();
private:
static const ossimNormalizedU16RemapTable m_remapTable;
TYPE_DATA
};
inline ossim_float64 ossimU16ImageData::getMinNormalizedPix() const
{
return m_remapTable[1];
}
#endif
|