Professional Documents
Culture Documents
Resumen El presente artculo muestra el desarrollo del tercer laboratorio de la ctedra Procesamiento Digital de Imgenes, donde se ponen a prueba los mtodos para realizar combinaciones y trasformaciones de color de las imgenes. De igual manera, se ponen en prctica los diferentes mtodos para combinar imagenes; se analizan todas las operaciones booleanas y aritmticas, lineales y no lineales, junto con los efectos que se tienen al aplicarse a una imagen. Por ltimo, se analiza el tema de transformaciones de color en las imgenes. Se aplican los cdigos correspondientes a la trasformacin de color a escala de grises y viceversa, al tiempo que se observan los efectos que se pueden llegar a obtener cuando se agrega color y se mezcla o cambia cada canal RGB de la imagen. ndice de Trminos Binarizacin, combinacin, color, intensidad, mscara. I. INTRODUCCIN
transformacin de gris a color, agregar el color deseado y por separado a cada canal, mezclar y combinar los canales RGB de la imagen [1]. II. CONTENIDO DEL ARTCULO
A. COMBINACIN DE IMAGENES
Los mtodos de combinacin y transformacin de color se pueden aplicar fcilmente debido a que son solo operaciones aritmticas o booleanas aplicadas a imagenes. Esto permite que cualquier persona pueda tanto entenderlas fcilmente como ponerlas en prctica. Las operaciones booleanas y las aritmticas trabajan pixel a pixel, aplicando la operacin correspondiente entre los pixeles de la misma posicin de las imgenes; as hasta terminar con todos los pixeles, esto quiere decir que la transformacin se aplicaba por igual y en conjunto a los tres canales RGB de la imagen. Las operaciones booleanas son tiles para trabajar con mscaras de objetos. Las operaciones aritmticas, se usan en generacin y anlisis de imagen como video, modelos acumulados, deteccin de movimiento, trasparencias difusas, etc. Cabe resaltar que las imgenes deben, necesariamente, tener el mismo tamao para que puedan ser tratadas. En la transformacin de color la transformacin es distinta para cada canal. Se pueden aplicar las mismas operaciones aritmticas y ajustes al histograma, pero con distintos parmetros para cada canal. Entre las aplicaciones que encontramos estn: conversin de color a escala de grises,
Pimentel. CTC.
Imagen segmentada de la mscara
Imagen combinada de todos los planos RGB binarizados Imagen morfolgica de todos los planos RGB
2
Imagen segmentada del fondo
200
200 400 600 200
200 400 600 200 400 600 800 1000 200 400 600 800 1000
400
400
600
600
200
400
600
800
1000
200
400
600
800
1000
200
400
600
800 1000
Cmo crear la mscara automticamente? Una buena forma de sacar la mscara automticamente es aplicando los comandos que siguen a continuacin:
A=imread('Lighthouse.jpg'); level=graythresh(A); %Calcula un valor de umbral apropiado U=im2bw(A,level); %Convierte la imagen original a binaria figure, imshow(U) subplot(2,1,1),subimage(A),title('Imgen Original'); subplot(2,1,2),subimage(U),title('Imgen Umbralizada');
Pimentel. CTC.
Imgen original
que la imgen tenga una mejor relacin con su entorno. Esto se puede ver en las imgenes siguientes.
Imagen fontral Imagen Mscara umbralizada
200 400
200 200 400 600 200 400 600 800 1000 200 400 600 800 1000
400 600
Imgen Umbralizada
200
400
600
800 1000
El cdigo usado fue el siguiente: Para tener una mejor umbralizacin aplicamos el siguiente comando:
bw=bwareaopen(U,10000); figure, imshow(bw) A=imread('Lighthouse.jpg'); AplanoR=A(:,:,1); AplanoG=A(:,:,2); AplanoB=A(:,:,3); levelR=graythresh(AplanoR); levelG=graythresh(AplanoG); levelB=graythresh(AplanoB); UmplaR=im2bw(AplanoR,levelR); UmplaG=im2bw(AplanoG,levelG); UmplaB=im2bw(AplanoB,levelB); bw=UmplaR.*UmplaG.*UmplaB; bw1=bwareaopen(bw,10000); subplot(2,2,1),subimage(A),title('Imagen fontral'); subplot(2,2,2),subimage(bw),title('Image n Mscara umbralizada'); subplot(2,1,2),subimage(bw1),title('Imag en Mscara umbralizada y corregida');
La zona del pelo no se mezcla bien con el fondo. Cmo evitar este problema? Para evitar el problema de una mala combinacin de las mscaras es necesario trabajar cada gama de color de la mscara frontal; de esta forma se permite
UNIDADES TECNOLGICAS DE SANTANDER - INGENIERA ELECTRNICA
Pimentel. CTC.
Imagen Resultante
200 400
200 400 600 200 400 600 800 1000 Imagen Resultante 200 400 600 800 1000
200
600
Imagen Resultante
200
200 400 600 200 400 600 800 1000
200 400 600 200 400 600 800 1000 200 400 600 800 1000
400 600
200 400 600 200 400 600 800 1000 200 400 600 800 1000
Pimentel. CTC.
n n n n
Fondo 2 100 200 300 400 200 400 600 100 200 300 400
Fondo acumulado
200
400
600
Pimentel. CTC.
Imagen Resultante
100 200 300 400 Frame 1 100 200 300 400 200 400 600 Diferencia 1 100 200 300 400 200 400 600 100 200 300 400 200 400 600 200 400 600 100 200 300 400 200 400 600 Diferencia 2 Frame 2
Imagen Resultante
Pimentel. CTC.
Pimentel. CTC.
Imagen fontral (mscara)
8 AplanoR=A(:,:,1); AplanoG=A(:,:,2); AplanoB=A(:,:,3); levelR=graythresh(AplanoR); levelG=graythresh(AplanoG); levelB=graythresh(AplanoB); UmplaR=im2bw(AplanoR,levelR); UmplaG=im2bw(AplanoG,levelG); UmplaB=im2bw(AplanoB,levelB); bw=UmplaR.*UmplaG.*UmplaB; bw1=bwareaopen(bw,10000); figure, subplot(2,2,1),subimage(bw),title('Imagen combinada de todos los planos RGB binarizados'); subplot(2,2,2),subimage(bw1),title('Imag en morfolgica de todos los planos RGB'); mu=im2uint8(bw1); % Sacamos la gama de colores de la imgen umbralizada y las ponemos en M M(:,:,1)=mu; M(:,:,2)=mu; M(:,:,3)=mu; mn=not(mu); % Negacin de la imgen umbralizada subplot(2,1,2),subimage(mn),title('Image n negada de la imgen umbralizada');
Imagen segmentada de la mscara 100 200 300 400 200 400 600 100 200 300 400 200 400 600 Imagen segmentada del fondo
Pimentel. CTC.
Conversin precisa
subplot(2,2,1),subimage(T1),title('Imagen segmentada de la mscara'); T2=B.*(M/255); subplot(2,2,2),subimage(T2),title('Image n segmentada del fondo'); R=T1+T2; subplot(2,1,2),subimage(R),title('Imgen segmentada resultante'); B. TRANSFORMACIONES DE COLOR
100
200
300
100
200 (b)
300
400
Transformacin precisa
100
200
300
100
200
300
400
Fig. 24: Transformacin de color. a) Imagen original; b) UNIDADES TECNOLGICAS DE SANTANDER - INGENIERA ELECTRNICA
10
function[s]=transformar('monte.jpg',128, 30,255,0) %Donde 'imagen' es el nombre de la imagen a transformar con su respectiva extencin; 'Pmedio' es el Punto medio del histograma; 'vr','vg' y 'vb' son los rangos de las tres gamas de colores a transformar y los 3 van de 0 a 255 B=imread(imagen); A=rgb2gray(B); Ad=double(A); if Ad<Pmedio AR=vr*(Ad/Pmedio); AG=vg*(Ad/Pmedio); AB=vb*(Ad/Pmedio); AT(:,:,1)=AR; AT(:,:,2)=AG; AT(:,:,3)=AB; An=uint8(AT); figure, subplot(2,1,1),subimage(B),title('(a)'); subplot(2,1,2),subimage(An),title('(b)') ; else AR= vr+(255-vr)*((Ad-Pmedio)/Pmedio); AG= vg+(255-vg)*((Ad-Pmedio)/Pmedio); AB= vb+(255-vb)*((Ad-Pmedio)/Pmedio); AT(:,:,1)=AR; AT(:,:,2)=AG; AT(:,:,3)=AB; An=uint8(AT); figure, subplot(2,1,1),subimage(B),title('(a)'); subplot(2,1,2),subimage(An),title('(b)') ; end
Transformaciones de agregar color (colorear) Ejemplos Propuestos: Priorizar rojos (medio): fr= 1.2, fg= 0.9, fb= 0.9
Pimentel. CTC.
(a)
(a)
11
Qu imagen tiene los colores ms realistas? La imagen que tiene los colores ms realistas es aquella con la gama de amarillos modificada. Mezcla de cambio de canales Ejemplo1. RR=AG, RG=AB, RB=AR
Pimentel. CTC.
(a)
(a)
12
III.
CONCLUSIONES
En las operaciones booleanas el resultado final siempre resulta saturado; mientras que en las operaciones aritmticas se pueden encontrar dos opciones: el resultado puede estar saturado, o el resultado no est saturado. Las operaciones booleanas son perfectas a la hora de combinar dos imagenes debido a su facilidad ya que trabaja cada canal por separado, permitiendo una mejor umbralizacin y segmentacin de la imagen.
UNIDADES TECNOLGICAS DE SANTANDER - INGENIERA ELECTRNICA
Pimentel. CTC.
13
Como en cada operacin el resultado es diferente, la operacin a aplicar a una imagen depende del resultado que queramos conseguir. Esto resulta en que cualquier tipo de operacin aplicada ser posible, sin importar si es una operacin lineal o no lineal. Los resultados de aplicar un cambio general a la imagen, o sea, a los canales RGB al mismo tiempo son diferentes al aplicar un cambio a cada canal RGB por separado. El mtodo que mejor se ajusta a un resultado real, es la transformacin de todos los canales de la imagen al mismo tiempo, debido a que este mtodo mantiene los colores originales, siempre en una proporcin igual.
REFERENCIA