freeimage.h

FreeImage_TmoFattal02

48RGB16 64RGBA16 96RGBF 128RGBAF

DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoFattal02(FIBITMAP *src, double
color_saturation FI_DEFAULT(0.5), double attenuation FI_DEFAULT(0.85));

Convierte una imagen de rango dinámico alto a una RGB 24-bit RGB usando un operador local que manipula el gradiente de la luminancia de la imagen atenuando las magnitudes de grandes gradientes. Una nueva imagen, con bajo rango dinámico se obtiene resolviendo la ecuación de Poisson en el campo de gradiente modificado.

El parámetro color_saturation, en el rango [0.4, 0.6], controla la saturación de color en la imagen resultado.

El parámetro attenuation, en el rango [0.8, 0.9], controla la cantidad de atenuación.

El algoritmo trabaja resolviendo muchas ecuaciones diferenciales parciales como pixels haya en la imagen, usando la solución de Poisson basado en un algoritmo multimalla. Así que el algoritmo puede tomar algunos minutos (hasta 5 o más) antes de completarse.

Referencias

R. Fattal, D. Lischinski, and M. Werman, Gradient domain high dynamic range compression. ACM Transactions on Graphics, 21(3):249–256, 2002.