lunes, 7 de junio de 2010

Operaciones aritméticas y Rotación

Operaciones Aritméticas

Para desarrollar una operación aritmética, se puede realizar entre dos imágenes pero ambas imágenes deben tener el mismo tamaño, o puede haber la opción de realizar operaciones entre una imagen y un escalar. Las operaciones más usadas son la suma, resta, multiplicación y división.
En este caso las operaciones se realizan con un escalar para lograr notar los efectos que puede causar.

Adquirir y presentar la imagen (Obtenemos la imagen y la guardamos en una variable llamada "image")
image=imread('image1.jpg');
figure; imshow(image)





Obtener escala de grises (Separamos los 3 planos de la imagen)
planeR=image(:,:,1);
planeG=image(:,:,2);
planeB=image(:,:,3);

Operaciones con un escalar (Realizamos las 3 operaciones fundamentales entre una imagen y un escalar y lo presentamos para visualizar sus cambios)

Resta de la imagen con un escalar (Mediante la resta entre imagenes se puede realizar procesos como detección de movimientos, si se utilizan 2 imagenes distintas, las 2 deben ser del mismo tamaño y se utiliza el comando imsubtract. En este caso la resta se realiza entre una imagen y un escalar)
filterR=planeR-2;
figure; imshow(filterR)



Multiplicación de la imagen con un escalar (La multiplicación se realliza entre 2 imágenes del mismo tamaño, mediante el comando immultiply. Si la multiplicación se lo realiza con un escalar, se lo llama escalamiento, si escalar<1>1 aumenta el brillo de la imagen)
filterG=planeG*2;
figure; imshow(filterG)




Suma de la imagen con un escalar (Si se realiza la suma entre 2 imágenes, las 2 deben ser del mismo tamaño. Al sumar con un escalar, el brillo de la imagen aumenta)
filterB=planeB+2;
figure; imshow(filterB)





Superponer lo realizado con las 3 operaciones anteriores (Al superponer lo realizado anteriormente en una sola variable se presentará la imagen a color con las respectivas modificaciones)
filterRGB(:,:,1)=filterR;
filterRGB(:,:,2)=filterG;
filterRGB(:,:,3)=filterB;
figure; imshow(filterRGB)


Rotar la imagen

La rotación de una imagen, se logra desarrollando la matriz transpuesta de cada plano de la imagen, es decir de cada matriz que la compone, y al finalizar superponerlas para lograr apreciar la imagen a color.
planeR=planeR';
planeG=planeG';
planeB=planeB';
rotate(:,:,1)=planeR;
rotate(:,:,2)=planeG;
rotate(:,:,3)=planeB;
figure; imshow(rotate)


Si se desea rotar la imagen con un valor de grado determinado, por ejemplo 30 grados
rot=imrotate(image1,30,'nearest');
figure; imshow(rot)

2 comentarios:

  1. Al realizar las operaciones de imágenes con un escalar lo que se consigue es variar la intensidad del brillo en una imagen, las operaciones se las debe realizar a cada uno de los planos RGB para después sobreponer las imágenes y notar el cambio de la imagen a color

    ResponderEliminar
  2. para poder realizar una rotacion de imagenes matematicamente utilizamos una matriz transpuesta que no es mas que el cambio de los elementos de filas a columnas y viceversa, en el caso de que la imagen sea RGB se tendria que realizar la transpuesta de las 3 matrices de color, la R, la G, y la B para luego sobreponerlas y visualizar el resultado

    ResponderEliminar