modelos de color...• la descripción rgb (red, green, blue; "rojo, verde, azul") de un...

35
Modelos de color Juan Meza Agradecimiento a: Paola Robles Pérez, por las fotos

Upload: others

Post on 04-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Modelos de color

Juan Meza

Agradecimiento a: Paola Robles Pérez, por las fotos

Page 2: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

RGB

Page 3: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores primarios con que se forma: el rojo, el verde y el azul.

• • Es un modelo de color es una síntesis aditiva, con el que es posible

representar un color mediante la mezcla por adición de los tres colores luz primarios.

• El modelo de color RGB no define por sí mismo lo que significa exactamente rojo, verde o azul, por lo que los mismos valores RGB pueden mostrar colores notablemente diferentes en diferentes dispositivos que usen este modelo de color.

Page 4: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

A=imread('paola2.jpg','JPG'); %Lee la imagen en formato JPG R = A(:,:,1); %Extrae la componente R de la Imagen A G = A(:,:,2); %Extrae la componente G de la Imagen A B = A(:,:,3); %Extrae la componente B de la Imagen A figure(1) %Declara un cuadro de figura 1 subplot(2,2,1),imshow(A) %Dibuja A, en la esquina superior izquierda subplot(2,2,2),imshow(R) %Dibuja R, en la esquina superior derecha subplot(2,2,3),imshow(G) %Dibuja G, en la esquina inferior izquierda subplot(2,2,4),imshow(B) %Dibuja B, en la esquina inferior derecha

Page 5: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores
Page 6: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all image=imread('paola2.jpg');% obtenemos la

imagen % imagen tal y como la obtenemos figure(1) subplot(2,3,1) imshow(image),title(sprintf('Imagen original')); % Componente roja de la imagen image_R(:,:,1)=image(:,:,1); image_R(:,:,2)=0; image_R(:,:,3)=0; subplot(2,3,2) imshow(image_R),title(sprintf('Imagen

componente roja')); % Componente verde de la imagen image_G(:,:,2)=image(:,:,2); image_G(:,:,1)=0; image_G(:,:,3)=0; subplot(2,3,3) imshow(image_G),title(sprintf('Imagen

componente verde'));

% Componente azul de la imagen

image_B(:,:,3)=image(:,:,3);

image_B(:,:,1)=0;

image_B(:,:,2)=0;

subplot(2,3,4)

imshow(image_B),title(sprintf('Imagen

componente azul'));

% Imagen en blanco y negro

image_BW=im2bw(image,0.5);

subplot(2,3,5)

imshow(image_BW),title(sprintf('Image

n blanco y negro'));

% Imagen en escala de grises

image_Gray=rgb2gray(image);

subplot(2,3,6)

imshow(image_Gray),title(sprintf('Imag

en escala grises')); 6 Juan Meza: [email protected]

Page 7: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Modelo RGB (Componentes)

7 Juan Meza: [email protected]

Page 8: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all

I = imread('paola2.jpg','JPG');

imtool(I);

Page 9: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Hipermatrices (arrays de más de dos dimensiones)

• MATLAB permite trabajar con hipermatrices, es decir con matrices de más de dos dimensiones. Una posible aplicación es almacenar con un único nombre distintas matrices del mismo tamaño (resulta una hipermatriz de 3 dimensiones). Los elementos de una hipermatriz pueden ser números, caracteres, estructuras, y vectores o matrices de celdas, para el caso de este trabajo lo usaremos para definir imagenes. El tercer subíndice representa la tercera dimensión: la “profundidad” de la híper-matriz,

Page 10: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

YIQ

• El modelo YIQ define un espacio de color, usado por el estándar de televisión NTSC. I significa en fase (in-phase, en inglés), mientras que Q significa cuadratura (quadrature, en inglés) y se refieren a los componentes usados en la modulación de amplitud en cuadratura

• La componente Y representa la información de luminancia y es el único componente utilizado por los televisores de blanco y negro. I y Q representan la información de crominancia.

• En YUV, las componentes U y V son las coordenadas X e Y dentro de ese espacio de color. I y Q pueden ser imaginados como un segundo par de ejes en el mismo gráfico, rotados en 33º; por lo tanto, IQ y UV representan diferentes sistemas de coordenadas en el mismo plano.

Page 11: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

De RGB a YIQ De YIQ a RGB

Page 12: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all image=imread('paola.jpg');% obtenemos la imagen image_yiq = rgb2ntsc(image); % imagen tal y como la obtenemos figure(1) subplot(2,3,1) imshow(image),title(sprintf('Imagen original')); % Componente roja de la imagen image_Y(:,:,1)=image_yiq(:,:,1); image_Y(:,:,2)=0; image_Y(:,:,3)=0; subplot(2,3,2) imshow(image_Y),title(sprintf('Imagen componente Y')); % Componente verde de la imagen image_I(:,:,2)=image_yiq(:,:,2); image_I(:,:,1)=0; image_I(:,:,3)=0; subplot(2,3,3) imshow(image_I),title(sprintf('Imagen componente I')); % Componente azul de la imagen image_Q(:,:,3)=image_yiq(:,:,3); image_Q(:,:,1)=0; image_Q(:,:,2)=0; subplot(2,3,4) imshow(image_Q),title(sprintf('Imagen componente Q'));

Page 13: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

YUV

• YUV es un espacio de color típicamente usado como parte de un sistema de procesamiento de imagen en color. Una imagen o vídeo en color se codifica en este espacio de color teniendo en cuenta la percepción humana, lo que permite un ancho de banda reducido para los componentes de diferencia de color o crominancia, de esta forma, hace que los errores de transmisión o las imperfecciones de compresión se oculten más eficientemente a la percepción humana que usando una representación RGB directa.

• Otros espacios de color tienen propiedades similares y la principal razón para implementar o investigar las propiedades de YUV o de su similar, Y'UV se encuentran tanto las de interactuar con televisión analógica o digital o con equipo fotográfico que sea conforme a ciertos estándares de este espacio.

Page 14: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

RGB a Y’UV Y’UV a RGB

Page 15: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

• Normalmente la conversión RGB->YUV son en matemática entera, por lo que suele ser conveniente usar una aproximación en [coma fija].

Y := min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13; 235)

U := min(abs(r * -1214 + g * -2384 + b * 3598 + 4096 + 1048576) >> 13; 240)

V := min(abs(r * 3598 + g * -3013 + b * -585 + 4096 + 1048576) >> 13; 240)

Page 16: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

YCbCr

• YCbCr o Y'CbCr, a veces escrito YCBCR o Y'CbCr, es una familia de espacios de color utilizados como parte de la tubería de imagen en color en los sistemas de vídeo y fotografía digital. Y es la componente de luminancia y CB y CR son el azul, diferencia y componentes rojo-diferencia de croma. Y '(con prima) se distingue de la Y, que es la luminancia, lo que significa que la intensidad de la luz no es lineal codificada utilizando la corrección de gamma

Page 17: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Modelos circulares de color: HSV y HSL

• Es más cercano a la idea humana del color , pensar sobre términos de matiz y saturación a la hora de definir un color que hacerlo por sus propiedades sustractivas y aditivas. De esta idea nacieron los modelos HSV (Hue , Saturation, Value) y HSL (Hue, Saturation, Lightness) como una transformación no lineal del espacio RGB.

Page 18: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

• En el modelo HSV, la matiz se representa en una región circular, cuyo centro es el blanco. La distancia del centro hacia el color en la región circular define la saturación. Cada color primario esta separado del otro 120˚ y los colores mixtos están definidos entre los espacios resultantes. Una tercera dimensión es añadida para definir el negro, generando así un cono en el espacio, cuya altura viene dada por el brillo o valor.

• El modelo HSL sigue esta idea, solo que ahora su representación en el espacio es un doble cono, en cuyos vértices opuestos se localizan el negro y el blanco. El centro del doble cono seria por lo tanto un tono gris, dado que el eje que une sus vértices es la luminancia.

Page 19: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores
Page 20: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Espacio de color L*a*b

• El espacio de color L*a*b esta basado en la percepción de color del ojo humano.

• Este modelo de referencia de color fue diseñado para ser independiente del dispositivo en el cual se emplea, ya sea por pantalla o impresora.

• Crea colores inalterables, persistentes y mas resistentes frente a errores separando la luminosidad “L” de los dos canales cromáticos “a” y “b”.

• En el espacio L*a*b es posible referenciar mas colores que en CMYK y RGB, incluso colores imaginarios que no tienen presencia en la naturaleza.

Page 21: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

El Histograma: Thresholding

• El histograma es una representación gráfica de la cantidad de pixeles que hay de cada tonalidad de color de la imagen. En una imagen en tonos de gris se obtiene un diagrama de barras, donde la superficie de cada barra es proporcional a la frecuencia de aparición de cada tonalidad de gris. En una imagen de ocho bits obtenemos un total de 256 distintos valores, donde la primera posición representa al negro y la ultima al blanco.

Page 22: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

• El histograma de color, muchas veces es representado como la unión de los histogramas de cada componente de color de la imagen RGB.

• Esta representación no es del todo acertada, ya que no se tiene en cuenta la tonalidad de color en concreto, sino cada uno de sus tres componentes.

• El verdadero histograma de color es una representación tridimensional de todas las tonalidades de color que aparecen en la imagen.

• El histograma por lo tanto ahora esta compuesto por cubitos que dan información acerca de la frecuencia de aparición de cada tonalidad

Page 23: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores
Page 24: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

HSV

• El modelo HSV (Hue, Saturation, Value – Tonalidad, Saturación, Valor), también llamado HSB (Hue, Saturation, Brightness – Tonalidad, Saturación, Brillo), define un modelo de color en términos de sus componentes constituyentes en coordenadas cilíndricas: – Tonalidad, el tipo de color (como rojo, azul o amarillo). Se representa como un

grado de ángulo cuyos valores posibles van de 0 a 360° (aunque para algunas aplicaciones se normalizan del 0 al 100%). Cada valor corresponde a un color. Ejemplos: 0 es rojo, 60 es amarillo y 120 es verde.

– Saturación. Se representa como la distancia al eje de brillo negro-blanco. Los valores posibles van del 0 al 100%. A este parámetro también se le suele llamar "pureza" por la analogía con la pureza de excitación y la pureza colorimétrica de la colorimetría. Cuanto menor sea la saturación de un color, mayor tonalidad grisácea habrá y más decolorado estará. Por eso es útil definir la insaturación como la inversa cualitativa de la saturación.

– Valor del color, el brillo del color. Representa la altura en el eje blanco-negro. Los valores posibles van del 0 al 100%. 0 siempre es negro. Dependiendo de la saturación, 100 podría ser blanco o un color más o menos saturado.

Page 25: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all image=imread('paola.jpg');% obtenemos la imagen image_hsv = rgb2hsv(image); % imagen tal y como la obtenemos figure(1) subplot(2,3,1) imshow(image),title(sprintf('Imagen original')); % Componente roja de la imagen image_H(:,:,1)=image_hsv(:,:,1); image_H(:,:,2)=0; image_H(:,:,3)=0; subplot(2,3,2) imshow(image_H),title(sprintf('Imagen componente H')); % Componente verde de la imagen image_S(:,:,2)=image_hsv(:,:,2); image_S(:,:,1)=0; image_S(:,:,3)=0; subplot(2,3,3) imshow(image_S),title(sprintf('Imagen componente S')); % Componente azul de la imagen image_V(:,:,3)=image_hsv(:,:,3); image_V(:,:,1)=0; image_V(:,:,2)=0; subplot(2,3,4) imshow(image_V),title(sprintf('Imagen componente V'));

Page 26: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all I=imread('paola.jpg');%

obtenemos la imagen figure(1) subplot(2,2,1),imshow(I); d=rgb2hsv(I);d1=d(:,:,1); %Capa H subplot(2,2,2),imshow(d1); d=rgb2hsv(I);d2=d(:,:,2); subplot(2,2,3),,imshow(d2);

%Capa S d=rgb2hsv(I);d3=d(:,:,3); %Capa V subplot(2,2,4),,imshow(d3);

Page 27: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

HSI

Page 28: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

rgbIm = hsi2rgb(hsiIm) function rgbIm = hsi2rgb(hsiIm) H = hsiIm(:,:,1); S = hsiIm(:,:,2); I = hsiIm(:,:,3); H = 2*pi*H; %unnormalize H. imSize = size(H); R = zeros(imSize); G = zeros(imSize); B = zeros(imSize); condArray = (0 <= H) .* (H < (2*pi/3)); %returns 0s and 1s B = B + (I.*(1 - S)).*condArray; R = R + (I.*(1 + (S.*cos(H))./(cos(2*pi/6 - H)))).*condArray; G = G + (3*I - (R + B)).*condArray; condArray = ((2*pi/3) <= H) .* (H < (2*pi*2/3)); Hm = H - (2*pi/3); R = R + (I.*(1 - S)).*condArray; G = G + (I.*(1 + (S.*cos(Hm))./(cos(2*pi/6 - Hm)))).*condArray; B = B + (3*I - (R + G)).*condArray; condArray = ((2*pi*2/3) <= H) .* (H <= (2*pi)); Hm = H - (2*pi*2/3); G = G + (I.*(1 - S)).*condArray; B = B + (I.*(1 + (S.*cos(Hm))./(cos(2*pi/6 - Hm)))).*condArray; R = R + (3*I - (G + B)).*condArray; rgbIm = cat(3,R,G,B); end

hsi=rgb2hsi(image) function hsi=rgb2hsi(image) rgb_r=image(:,:,1); rgb_g=image(:,:,2); rgb_b=image(:,:,3); [width,height]=size(rgb_r); hsi=zeros(width,height,3); hsi_h=hsi(:,:,1); hsi_s=hsi(:,:,2); hsi_i=hsi(:,:,3); PI=3.1415956; for i=1:width for j=1:height R=double(rgb_r(i,j));G=double(rgb_g(i,j));B=double(rgb_b(i,j)); min = R; if (G < min) min = G; end if (B < min) min = B; end I =(R+G+B)/3; S = 1 - min/I; if (S == 0.0) H = 0; else H = ((R-G)+(R-B))/2.0; H = H/sqrt((R-G)*(R-G) + (R-B)*(G-B)); H = acos(H); if (B > G) H = 2*PI - H; end H = H/(2*PI); end hsi_h(i,j)=H;hsi_s(i,j)=S;hsi_i(i,j)=I/255; end end hsi(:,:,1)=hsi_h; hsi(:,:,2)=hsi_s; hsi(:,:,3)=hsi_i;

Page 29: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all image=imread('paola.jpg');% obtenemos la imagen image_hsi = rgb2hsi(image); % imagen tal y como la obtenemos figure(1) subplot(2,3,1) imshow(image),title(sprintf('Imagen original')); % Componente roja de la imagen image_H(:,:,1)=image_hsi(:,:,1); image_H(:,:,2)=0; image_H(:,:,3)=0; subplot(2,3,2) imshow(image_H),title(sprintf('Imagen componente

H')); % Componente verde de la imagen image_S(:,:,2)=image_hsi(:,:,2); image_S(:,:,1)=0; image_S(:,:,3)=0; subplot(2,3,3) imshow(image_S),title(sprintf('Imagen componente S')); % Componente azul de la imagen image_I(:,:,3)=image_hsi(:,:,3); image_I(:,:,1)=0; image_I(:,:,2)=0; subplot(2,3,4) imshow(image_I),title(sprintf('Imagen componente

I'));

Page 30: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all image=imread('paola.jpg');% obtenemos la imagen image_YCBCR = rgb2ycbcr(image); % imagen tal y como la obtenemos figure(1) subplot(2,3,1) imshow(image),title(sprintf('Imagen original')); % Componente roja de la imagen image_Y(:,:,1)=image_YCBCR(:,:,1); image_Y(:,:,2)=0; image_Y(:,:,3)=0; subplot(2,3,2) imshow(image_Y),title(sprintf('Imagen componente

uno')); % Componente verde de la imagen image_I(:,:,2)=image_YCBCR(:,:,2); image_I(:,:,1)=0; image_I(:,:,3)=0; subplot(2,3,3) imshow(image_I),title(sprintf('Imagen componente

dos')); % Componente azul de la imagen image_Q(:,:,3)=image_YCBCR(:,:,3); image_Q(:,:,1)=0; image_Q(:,:,2)=0; subplot(2,3,4) imshow(image_Q),title(sprintf('Imagen componente

tres'));

Page 31: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

El espacio CMYK

• Opuestamente a la idea aditiva del modelo RGB para crear los colores, esta el espacio CMY. En este espacio, la suma de todos los colores da como resultado el negro, y la ausencia de color genera el blanco

Page 32: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

• El espacio CMY esta compuesto por los colores complementarios a los tres primarios, es decir: cian, magenta y amarillo.

• Es el espacio de color utilizado en imprenta, aunque en este ámbito, el negro no es generado como la suma de todos los colores.

• En la práctica , el negro así producido contiene impurezas y tiende más a clasificarse como un marrón oscuro. Por esta razón se añade un cartucho especial de color negro, originando la familiar denominación CMYK.

Page 33: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores
Page 34: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

Convolucion

Page 35: Modelos de color...• La descripción RGB (Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a la composición del color en términos de la intensidad de los colores

clear all imagen=imread('paola2.jpg'); [X,Y,Z]=size(imagen); C=(1/9)*[-1 0 1; -1 0 1; -1 0 1]; for i=2:X-1 for j=2:Y-1 for k=1:Z imagen2(i,j,k) = uint8(imagen(i-1,j-1,k)*C(1,1)+imagen(i-

1,j+0,k)*C(2,1)+imagen(i-1,j+1,k)*C(3,1)+imagen(i+0,j-1,k)*C(1,2)+imagen(i+0,j+0,k)*C(2,2)+imagen(i+0,j+1,k)*C(3,2)+imagen(i+1,j-1,k)*C(1,3)+imagen(i+1,j+0,k)*C(2,3)+imagen(i+1,j+1,k)*C(3,3));

end end end figure(1),title('Figura Original'),imshow(imagen); figure(2),title('Figura Imagen filtrada'),imshow(imagen2);