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

Angulo entre dos vectores RGB

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 el dato sin procesar capturado 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 demosaicing, balance de blancos, mejora de color, filtrado de ruido o corrección gamma.

A = imread('foosballraw.tiff');

Interpolar utilizando la función para obtener una imagen de color.demosaic 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 del suelo, que se calculó de antemano utilizando los parches neutros del gráfico.

illuminant_groundtruth = [0.0717 0.1472 0.0975];

Para evitar sesgar la estimación del iluminante, 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 iluminante diferentes: , , y .illumwhiteillumgrayillumpca

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 del suelo calculando el ángulo entre cada iluminador estimado y la verdad del suelo utilizando la función.colorangle Cuanto menor sea el ángulo, mejor será la estimación. La magnitud de la estimación no importa porque sólo la dirección del iluminante se utiliza para equilibrar 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 es más pequeño, lo que indica que el algoritmo de estimación del iluminante PCA está más cerca de la iluminación de la verdad del suelo para esta imagen.angle_pca

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

Angulo entre vectores RGB, devuelto como escalar numérico.

Tipos de datos: double

Más acerca de

contraer todo

Angular Error

El error angular es una métrica útil para evaluar la estimación de un iluminante contra la verdad del suelo. Cuanto menor sea el ángulo entre el iluminador de la verdad del suelo y el iluminante estimado, mejor será la estimación.

Introducido en R2017b