21 "ossimColorNormalizedFusion",
44 if(!inputTile.
valid())
69 if(!redBuff||!grnBuff||!bluBuff)
75 if((!inputIntensity.
valid()) ||
76 (!inputIntensity->
getBuf()) ||
100 for (
int i = 0; i <
size; i++)
105 if ( (mono_buff[i] == NULL_PIX_VALUE) ||
106 (redBuff[i] == NULL_PIX_VALUE &&
107 grnBuff[i] == NULL_PIX_VALUE &&
108 bluBuff[i] == NULL_PIX_VALUE) )
111 redBuff[i] = NULL_PIX_VALUE;
112 grnBuff[i] = NULL_PIX_VALUE;
113 bluBuff[i] = NULL_PIX_VALUE;
118 greenVal = grnBuff[i];
119 blueVal = bluBuff[i];
120 rgb_sum = redVal + greenVal + blueVal + 3;
121 r_wt = 3 * (redVal + 1) / rgb_sum;
122 g_wt = 3 * (greenVal + 1) / rgb_sum;
123 b_wt = 3 * (blueVal + 1) / rgb_sum;
124 iVal = mono_buff[i] + 1;
126 redVal = r_wt * iVal - 1;
127 greenVal = g_wt * iVal - 1;
128 blueVal = b_wt * iVal - 1;
131 if (redVal > MAX_PIX_VALUE) redVal = MAX_PIX_VALUE;
132 if (greenVal > MAX_PIX_VALUE) greenVal = MAX_PIX_VALUE;
133 if (blueVal > MAX_PIX_VALUE) blueVal = MAX_PIX_VALUE;
136 redBuff[i] = (float)(redVal>0.0 ? redVal : MIN_PIX_VALUE);
137 grnBuff[i] = (float)(greenVal>0.0 ? greenVal : MIN_PIX_VALUE);
138 bluBuff[i] = (float)(blueVal>0.0 ? blueVal : MIN_PIX_VALUE);
virtual ossim_uint32 getWidth() const
virtual const ossim_float64 * getMaxPix() const
virtual ossim_uint32 getNumberOfBands() const
ossimRefPtr< ossimImageData > getNormTile(const ossimIrect &rect, ossim_uint32 resLevel)
ossimRefPtr< ossimImageData > theTile
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
ossimColorNormalizedFusion()
ossimImageSource * theInputConnection
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &rect, ossim_uint32 resLevel=0)
virtual ossimDataObjectStatus validate() const
virtual void setImageRectangleAndBands(const ossimIrect &rect, ossim_uint32 numberOfBands)
ossimImageSource * theIntensityConnection
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
virtual ~ossimColorNormalizedFusion()
virtual void copyNormalizedBufferToTile(ossim_float64 *buf)
Copies buf passed in to tile.
ossimRefPtr< ossimImageData > getNormIntensity(const ossimIrect &rect, ossim_uint32 resLevel)
virtual const ossim_float64 * getMinPix() const
virtual const void * getBuf() const
RTTI_DEF1(ossimColorNormalizedFusion, "ossimColorNormalizedFusion", ossimFusionCombiner)