freeimage.h

FreeImage_ToneMapping

48RGB16 64RGBA16 96RGBF 128RGBAF

DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ToneMapping(FIBITMAP *dib, FREE_IMAGE_TMO
tmo, double first_param FI_DEFAULT(0), double second_param FI_DEFAULT(0));

Convierte una imagen de alto rango dinámico (48-bit RGB o 96-bit RGBF) a una imagen RGB de 24-bit, apropiada para la pantalla. El parámetro tmo especifica el operador de mapeo de tono a usar. La función primero convierte la imagen de entrada a una imagen RGBF de 96-bit (usando la función FreeImage_ConvertToRGBF). Después, la imagen se mapea usando ino de los siguientes algoritmos:

Parámetro de Tonooperador de mapeo
FITMO_DRAGO03Mapeo logarítmico adaptativo (F. Drago, 2003)
FITMO_REINHARD05Reducción de rango dinámico inspirado por la fisioliogía de los fotoreceptores (E. Reinhard, 2005)
FITMO_FATTAL02Compresión de alto rango dinámico de dominio de gradiente (R. Fattal, 2002)

Tabla 10: constantes FREE_IMAGE_TMO.

El significado de los parámetros first_param y second_param parameters depende del algoritmo elegido (ver la definicion de cada operador de mapeo de tono). Cuando ambos parámetros son cero, se usa el juego de parámetros por defecto.

// load a HDR RGB Float image
FIBITMAP *src = FreeImage_Load(FIF_HDR, “memorial.hdr”, 0);
// create a 24-bit tone mapped image suitable for display
FIBITMAP *dst = FreeImage_ToneMapping(src, FITMO_DRAGO03);
// …
FreeImage_Unload(src);
FreeImage_Unload(dst);