Tratamiento de imagenes

Solo disponible en BuenasTareas
  • Páginas : 7 (1599 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de junio de 2011
Leer documento completo
Vista previa del texto
JUAN ALBERTO SANCHEZ DAZA COD 1004808231

UNIPAMPLONA

TALLER N° 1 RNA PROCESAMIENTO DIGITAL DE IMÁGENES – COLOR MANIPULACION SOBRE LOS PLANOS DE COLORES

Adquisición de la imagen. F=imread('ExsolucionesPiroxeno','jpg'); Visualizamos con imagesc
imagesc(F); title('Imagen real');

Con ayuda del comando whos podemos mirar las propiedades de F, F es una matriz de 605 x 800 x 3, lo quequiere decir que tiene un tamaño de 605 x 800 pixeles, F es una imagen cuyos píxeles son especificados por 3 valores, uno para cada componente de color (rojo, verde y azul) de cada píxel. En MATLAB, una imagen RGB es representada por un array mxnx3 de clase uint8, uint16, o double. Ahora procedemos a separar los tres planos de color (R, G y B) así:
R = double(squeeze(F(:,:,1))); G =double(squeeze(F(:,:,2))); B = double(squeeze(F(:,:,3)));

JUAN ALBERTO SANCHEZ DAZA COD 1004808231

UNIPAMPLONA

Con el comando min y max determinamos el rango de valores que asume cada pixel. Vmin=min(min(R)) Vmax=max(max(R)) Vmin = 0 Vmax = 255 F es una imagen de tipo uint8, la imagen es una array de mxnx3 de enteros en el rango [0, 255], es decir un pixel puede asumir un valor en esta rango en cadaplano especifico (R, G, o B). Visualización de cada plano:
figure(2); imagesc(R);title('Plano R');colormap(gray); figure(3); imagesc(G);title('Plano G');colormap(gray); figure(4); imagesc(B);title('Plano B');colormap(gray);

JUAN ALBERTO SANCHEZ DAZA COD 1004808231

UNIPAMPLONA

En cada plano los valores más altos están relacionados con el rojo de la barra de colores, es decir, en el planoB (azul) los rojos nos dicen donde hay más azul y el azul donde menos azul hay, debido a que el azul de la barra de colores está asociado con los valores más bajos, así donde hay azul para todos los planos, nos produce negro en la imagen real, y donde hay mucho rojo, quiere decir que en la imagen real hay blanco. Recomponemos la imagen alterando cada plano de color así:
FA =uint8(cat(3,R*0.2,G*0.5,B*1.0)); figure(5); %Recomposicion de la imagen con los planos alterados% imagesc(FA); title('Imagen con los planos alterados','fontsize',20);

Usando la función cat concadenamos de nuevo los tres planos (R, G, B) al multiplicarlos estamos alterando sus valores en el rango de colores [0, 255] de manera que el valor máximo para el plano R será 255*0.2 = 51 el de G será 255*0.5 = 128 y el deB 255*1.0 = 255. La imagen que obtenemos es la siguiente:

Así mismo podemos suprimir uno de los planos, dos, o simplemente recombinar de nuevo las tres planos dando como resultado la imagen original.
FA1=uint8(cat(3,0*R,G,B)); figure(6); imagesc(FA1);title('Imagen sin el plano R','fontsize',20) FA2=uint8(cat(3,R,0*G,0*B)); figure(7); imagesc(FA2);title('Imagen solo con el planoR','fontsize',20) FA3=uint8(cat(3,G,B,R)); figure(8); imagesc(FA3);title('Imagen con los planos intercambiados','fontsize',20) figure(9),S=uint8(cat(3,R,G,B)); imagesc(S);title('Imagen con los tres planos','fontsize',20);

JUAN ALBERTO SANCHEZ DAZA COD 1004808231

UNIPAMPLONA

Conversion del formato RGB a YIQ El formato YIQ (Iluminance, Inphase, Quadrature) es un equivalente del formato RGB. El ojohumano es más sensible a determinada información (por ejemplo la luminosidad), mientras que a otras no (por ejemplo el color). Por tanto convertimos el RGB a formato YIQ (en NTSC) donde “Y” es la luminosidad e “I” y “Q” es el color. Y = 0,30R + 0,59G + 0,11B I = 0,60R – 0,28G – 0,32B Q = 0,21R – 0,52G + 0,31B Como Matlab utiliza el formato RGB al visualizar las imágenes tipo YIQ al visualizarlas nola vemos de la misma forma puesto que los valores de de intensidad los asocia con el plano R, los de fase con el plano G, y los cuadratura con el plano B. de manera que veremos algo asi:
figure(10); YIQ = uint8(rgb2ntsc(double(F))); imagesc(YIQ); title('Imagen en formati YIQ','fontsize',20); Y = double(squeeze(YIQ(:,:,1))); I = double(squeeze(YIQ(:,:,2))); Q = double(squeeze(YIQ(:,:,3))); Y1 =...
tracking img