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.

colorangle

Ángulo entre dos vectores RGB

Sintaxis

angle = colorangle(rgb1,rgb2)

Descripción

ejemplo

angle = colorangle(rgb1,rgb2) calcula el ángulo en grados entre dos vectores RGB.

Ejemplos

contraer todo

Abra una imagen de prueba. La imagen es los datos crudos capturados con una cámara digital Canon EOS 30D después de corregir el nivel de negro y escalar las intensidades a 16 bits por píxel. No se ha aplicado ningún desmosaico, balanceo blanco, mejora de color, filtrado de ruido o corrección de gamma.

A = imread('foosballraw.tiff');

Interpolar con la función demosaic para obtener una imagen de color. El patrón de matriz de filtro de color es RGGB.

A_demosaiced = demosaic(A,'rggb');

La imagen contiene un gráfico ColorChecker. Especifique el iluminador de la verdad de tierra, que se calculó con antelación utilizando los parches neutros del gráfico.

illuminant_groundtruth = [0.0717 0.1472 0.0975];

Para evitar sesgar la estimación del elemento luminoso, excluya el gráfico ColorChecker creando una máscara.

mask = true(size(A_demosaiced,1), size(A_demosaiced,2)); mask(920:1330,1360:1900) = false;

Ejecute tres algoritmos de estimación de iluminaciones diferentes: illumwhite, illumgrayy illumpca.

illuminant_whitepatch = illumwhite(A_demosaiced,'Mask',mask); illuminant_grayworld = illumgray(A_demosaiced,'Mask',mask); illuminant_pca = illumpca(A_demosaiced,'Mask',mask);

Compare cada estimación con la verdad de la tierra calculando el ángulo entre cada iluminante Estimado y la verdad del suelo usando la función colorangle . Cuanto más pequeño sea el ángulo, mejor será la estimación. La magnitud de la estimación no importa porque sólo la dirección de la bombilla se utiliza para balancear una imagen con adaptación cromática.

angle_whitepatch = colorangle(illuminant_whitepatch, illuminant_groundtruth)
angle_whitepatch = 5.0921 
angle_grayworld = colorangle(illuminant_grayworld, illuminant_groundtruth)
angle_grayworld = 5.1036 
angle_pca = colorangle(illuminant_pca, illuminant_groundtruth)
angle_pca = 5.0134 

El valor de angle_pca es el más pequeño, lo que indica que el algoritmo de estimación de iluminaciones PCA está más cerca de la iluminación de la verdad de tierra para esta imagen.

Argumentos de entrada

contraer todo

Primer vector RGB, especificado como un vector numérico de 3 elementos.

Tipos de datos: single | double | uint8 | uint16

Segundo vector RGB, especificado como un vector numérico de 3 elementos.

Tipos de datos: single | double | uint8 | uint16

Argumentos de salida

contraer todo

Ángulo entre vectores RGB, devuelto como escalar numérico.

Tipos de datos: double

Más acerca de

contraer todo

Error angular

El error angular es una métrica útil para evaluar la estimación de un elemento luminoso contra la verdad del suelo. Cuanto más pequeño sea el ángulo entre el iluminante de la verdad de tierra y el iluminante estimado, mejor será la estimación.

Introducido en R2017b