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 Tono | operador de mapeo |
---|---|
FITMO_DRAGO03 | Mapeo logarítmico adaptativo (F. Drago, 2003) |
FITMO_REINHARD05 | Reducción de rango dinámico inspirado por la fisioliogía de los fotoreceptores (E. Reinhard, 2005) |
FITMO_FATTAL02 | Compresió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);