Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

makehdr

Crear imagen de alto rango dinámico

Descripción

ejemplo

HDR = makehdr(files) crea la imagen de precisión única y alto rango dinámico (HDR) a partir del conjunto de imágenes de rango dinámico bajo (LDR) registradas espacialmente en .HDRfiles

HDR = makehdr(imds) crea la imagen de rango dinámico alto y de precisión única a partir del conjunto de imágenes LDR registradas espacialmente almacenadas como objeto, .HDRImageDatastoreimds

ejemplo

HDR = makehdr(___,Name,Value) utiliza pares nombre-valor para controlar varios aspectos de la creación de la imagen además del argumento de entrada de cualquiera de las sintaxis anteriores.

Nota

Los archivos de imagen de entrada deben contener los metadatos de exposición de formato de archivo de imagen intercambiable (EXIF). utiliza la exposición media entre las imágenes más brillantes y oscuras como la exposición base para los cálculos HDR.makehdr Este valor no necesita aparecer en ningún archivo en particular. Para obtener más información sobre el cálculo de este valor de exposición media, consulte .Algoritmos

Ejemplos

contraer todo

Cree una imagen de alto rango dinámico (HDR) a partir de un conjunto de imágenes de bajo rango dinámico (LDR) que compartan el mismo f-stop pero tengan diferentes tiempos de exposición.

Cargue seis imágenes de rango dinámico bajo en el espacio de trabajo. Cree un vector de sus respectivos tiempos de exposición. Muestre las imágenes como un montaje.

files = {'office_1.jpg','office_2.jpg','office_3.jpg',...          'office_4.jpg','office_5.jpg','office_6.jpg'}; expTimes = [0.0333 0.1000 0.3333 0.6250 1.3000 4.0000]; montage(files)

Combine las imágenes LDR en una imagen HDR.

hdr = makehdr(files,'RelativeExposure',expTimes./expTimes(1));

Muestra la imagen HDR.

rgb = tonemap(hdr); imshow(rgb)

Cree una imagen de alto rango dinámico (HDR) a partir de un conjunto de seis imágenes de rango dinámico bajo (LDR) que compartan el mismo f-stop pero tienen diferentes tiempos de exposición. Los valores estimados de la función de respuesta de la cámara se calculan a partir de estas imágenes LDR y se utilizan para generar una imagen HDR.

Lea el conjunto de seis imágenes LDR registradas espacialmente en el espacio de trabajo. Cree un objeto que contenga estas imágenes.imageDatastore Muestre las imágenes como un montaje.

setDir = fullfile(toolboxdir('images'),'imdata','office_*'); imds = imageDatastore(setDir); montage(imds)

Calcule la función de respuesta de la cámara a partir de imágenes en el almacén de datos.

crf = camresponse(imds);

Combine las imágenes LDR en una imagen HDR utilizando los valores estimados de la función de respuesta de la cámara.

hdr = makehdr(imds,'CameraResponse',crf);

Muestra la imagen HDR.

rgb = tonemap(hdr); imshow(rgb)

Argumentos de entrada

contraer todo

Conjunto de imágenes LDR registradas espacialmente, especificadas como una matriz de cadenas o una matriz de celdas de vectores de caracteres. Estas imágenes pueden ser en color o en escala de grises de cualquier profundidad de bits. Sin embargo, la profundidad de bits preferida para las imágenes LDR es 8 o 16.

Tipos de datos: char | string | cell

Conjunto de imágenes LDR registradas espacialmente, especificadas como un objeto.ImageDatastore Estas imágenes pueden ser en color o en escala de grises de cualquier profundidad de bits. Sin embargo, la profundidad de bits preferida para las imágenes LDR es 8 o 16.

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: makehdr(files,'RelativeExposure',[0.1 0.3 0.4]);

Nombre del archivo que se va a utilizar como exposición base, especificado como un vector escalar de cadena o de caracteres.

Tipos de datos: char | string

Nota

Solo puede utilizar uno de los pares , , y nombre-valor a la vez.'BaseFile''ExposureValues''RelativeExposure'

Valor de exposición de cada archivo en el conjunto de entrada, especificado como un vector numérico de valores positivos. El th elemento en el vector corresponde a la imagen LDR del conjunto de entrada.kk Un aumento de un valor de exposición (EV) corresponde a duplicar la exposición. Una disminución de un EV corresponde a reducir a la mitad la exposición. Si especifica este parámetro, la función anula los metadatos de exposición EXIF.

Tipos de datos: single | double

Valor de exposición relativo de cada archivo del conjunto de entrada, especificado como vector numérico de valores positivos. El th elemento en el vector corresponde a la imagen LDR del conjunto de entrada.kk

Por ejemplo, una imagen con un valor de exposición relativa (RE) de 0,5 tiene la mitad de exposición que una imagen con un valor RE de 1. Del mismo modo, una imagen con un valor RE de 3 tiene tres veces la exposición de una imagen con un valor RE de 1. Si especifica este parámetro, la función anula los metadatos de exposición EXIF.

Tipos de datos: single | double

Valor mínimo expuesto correctamente, especificado como un entero positivo. Para cada imagen LDR, los píxeles con un valor menor que este mínimo se consideran subexpuestos y no contribuyen a la imagen HDR final. De forma predeterminada, este valor mínimo se establece en el 2% de la intensidad máxima permitida por el tipo de datos de imagen.

Tipos de datos: single | double

Valor máximo expuesto correctamente, especificado como un entero positivo. Para cada imagen LDR, los píxeles con un valor mayor que este máximo se consideran sobreexpuestos y no contribuyen a la imagen HDR final. De forma predeterminada, este valor máximo se establece en 98% de la intensidad máxima permitida por el tipo de datos de imagen.

Tipos de datos: single | double

Función de respuesta de cámara, especificada como un vector -by-1 para imágenes en escala de grises y matriz -by-3 para imágenes en color.nn La función de respuesta de la cámara asigna el valor de exposición al registro (radiancia de la escena) a los niveles de intensidad de las imágenes de entrada. El valor de es 2nbit depth. Por ejemplo, si la profundidad de bits del conjunto de entrada de imágenes es 8, entonces es 256.n

Nota

Los pares nombre-valor se omiten cuando se especifica.'MaximumLimit''MinimumLimit''CameraResponse'

Tipos de datos: single | double

Argumentos de salida

contraer todo

Imagen de alto rango dinámico, devuelta como una matriz numérica -by- -by-3.mn

Tipos de datos: single

Algoritmos

La función calcula el valor de exposición media utilizando los valores de exposición (EV) de las imágenes de entrada.makehdr El valor de exposición de cada imagen se calcula en función de la apertura y la velocidad de obturación. Los valores de apertura y velocidad de obturación se almacenan en los metadatos EXIF de ese archivo de entrada o se especifican mediante el par nombre-valor.'ExposureValues' El EV medio se calcula como un promedio de los vehículos eléctricos más altos y más bajos y se utiliza como exposición base.

Referencias

[1] Reinhard et al. High Dynamic Range Imaging 2006. Ch. 4.

[2] Debevec, P.E., and J. Malik. "Recovering High Dynamic Range Radiance Maps from Photographs." In ACM SIGGRAPH 2008 classes, Article No. 31. New York, NY: ACM, 2008.

Introducido en R2008a