#include "DequantUtil.h" #include "JEDUtil.h" #include "stdlib.h" void Dequantize9Way(FImage *src, FImage *dest, FImage *minimage, FImage *maximage) { if (src==NULL || dest==NULL || minimage==NULL || maximage==NULL) return; if (src==dest) return; short xsize,ysize; xsize=MIN(src->fXSize,dest->fXSize); ysize=MIN(src->fYSize,dest->fYSize); FImage *fimage=src; FImage *fimage2=dest; for (int y=0;yPix(x,y) ; float left = fimage->ClampedPix(x-1,y) ; float right = fimage->ClampedPix(x+1,y); float up = fimage->ClampedPix(x,y-1); float down = fimage->ClampedPix(x,y+1); float leftup = fimage->ClampedPix(x-1,y-1) ; float rightup = fimage->ClampedPix(x+1,y-1); float leftdown = fimage->ClampedPix(x-1,y+1); float rightdown = fimage->ClampedPix(x+1,y+1); float maxval = maximage->Pix(x,y); float minval = minimage->Pix(x,y); float newval = (left+right+up+down+leftup+rightup+leftdown+rightdown+current)/9.0; //float newval = (left+right+up+down+current)/5.0; //float newval = (left+right+up+down)/4.0; //float newval = (left+right)/2.0; newval=MIN(maxval,newval); newval=MAX(minval,newval); fimage2->Pix(x,y)=newval; } }