lunes, 7 de junio de 2010

Operación con imagenes

Para realizar las operaciones básicas entre 2 imágenes, es indispensable que dichas imágenes tengan el mismo tamaño.

Para el desarrollo de la suma y la resta, el largo de la imagen 1 tiene que tener el mismo largo de la imagen 2, y el ancho de las 2 imágenes también tienen que ser iguales. A pesar de que el largo y el ancho de cada imagen no sea del mismo porte.

Para el desarrollo de la multiplicación es distinto, tanto el largo como el ancho de cada imagen tiene que ser del mismo tamaño. Y de igual forma las 2 imágenes deben tener las mismas medidas.

Adquirir las 2 imágenes (Primero se obtiene las 2 imágenes y se las guarda en las variables imagen2 e imagen2 respectivamente)
imagen1=imread('image1.jpg');
imagen2=imread('image2.jpg');

Limitar imagen (Debido a que las 2 imágenes tienen medidas distintas, se debe tomar las medidas que se deseen y guardarlas en otras variables, image1 e image2, en este caso, se escogerá una matriz de [300x300])
image1=imagen1(1:300, 50:350,:);
image2=imagen2(1:300,50:350,:);
figure; imshow(image1)
figure; imshow(image2)

Imagen 1












Imagen 2












Separamos las 3 matrices de las dos imágenes, es decir convertimos las imágenes a escala de grises

planeR1=image1(:,:,1);
planeG1=image1(:,:,2);
planeB1=image1(:,:,3);



planeR2=image2(:,:,1);
planeG2=image2(:,:,2);
planeB2=image2(:,:,3);



Diferencia de imágenes
(Se hace la diferencia entre las 2 imágenes, por cada plano)
difR=planeR1-planeR2;
figure; imshow(difR)





difG=planeG1-planeG2;
figure; imshow(difG)







difB=planeB1-planeB2;
figure; imshow(difB)







Sobreponemos las 3 diferencias realizadas anteriormente
bothd(:,:,1)=difR;
bothd(:,:,2)=difG;
bothd(:,:,3)=difB;
figure; imshow(bothd)






Suma de imágenes
(Se hace la suma entre las 2 imágenes, por cada plano)
sumR=planeR1-planeR2;
figure; imshow(sumR)









sumG=planeG1-planeG2;
figure; imshow(sumG)









sumB=planeB1-planeB2;
figure; imshow(sumB)










Sobreponemos las 3 sumas realizadas anteriormente
boths(:,:,1)=sumR;
boths(:,:,2)=sumG;
boths(:,:,3)=sumB;
figure; imshow(boths)






Multiplicación de imágenes
(Se hace la multiplicación entre las 2 imágenes, por cada plano, en este caso con el comando immultiply)
mulR=immultiply(planeR1,planeR2);
figure; imshow(mulR)











mulG=immultiply(planeG1,planeG2);
figure; imshow(mulG)










mulB=immultiply(planeB1,planeB2);
figure; imshow(mulB)









Sobreponemos las 3 multiplicaciones realizadas anteriormente
bothm(:,:,1)=mulR;
bothm(:,:,2)=mulG;
bothm(:,:,3)=mulB;
figure; imshow(bothm)





2 comentarios:

  1. En la suma vemos que se sobreponen las imagenes pero para realizar la suma las imágenes deben tener el mismo tamaño caso contrario no se podrán realizar las operaciones, en el caso de la resta nos permite visualizar si existe movimiento o si hay un nuevo objeto en la imagen.

    ResponderEliminar
  2. este efecto de restar imagenes se puede utilizar al momento de realizar algunt tipo de seguridad en algun lugar, por ejemplo el ingreso a algun edificio o un banco por la noche, se tiene una imgen base de como deberia estar un lugar y las imagenes que se van dando a medida que pasa el tiempo, restando ambas se puede saber si existe algo que no deberia estar alli, o darse cuenta de alguna situacion fuera de lo normal.

    ResponderEliminar