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

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 sin procesar capturados con una cámara digital EOS 30D de Canon después de corregir el nivel de negro y escalar las intensidades a 16 bits por píxel. No se ha aplicado ningún deshielo, equilibrio 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 en 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 la iluminante de la verdad del terreno, que se calculó de antemano utilizando las manchas neutrales 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 iluminantes 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 terreno calculando el ángulo entre cada iluminante Estimado y la verdad del terreno utilizando la función.colorangle Cuanto más pequeño es el ángulo, mejor es la estimación. La magnitud de la estimación no importa porque sólo la dirección de la iluminante se utiliza para equilibrar la imagen blanca con la 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, indicando que el algoritmo de estimación de iluminante PCA es más cercano a la iluminación de verdad del terreno 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

Ángulo entre vectores RGB, devuelto como un 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 iluminante contra la verdad del terreno. Cuanto menor es el ángulo entre la iluminante de la verdad del suelo y la iluminante estimada, mejor es la estimación.

Introducido en R2017b