Primeros pasos con matlab para procesamiento de imagenes

beruby - te devolvemos dinero por tus compras y reservas online

Creación de  imágenes:

  • Imágenes en blanco y negro:
Ejemplo1:
       Explicación:

En este primer ejemplo creamos una imagen de tipo uint8. Para ello creamos un vector de tipo double con 2 parámetros que indican el numero de filas y el numero de columnas.
Posteriormente mediante un par de bucles for, le damos valores consecutivos a cada uno de  los elementos de la matriz y por último representamos la imagen, pero previamente mediante la orden uint8(A) cambiamos el tipo de dato de double a uint8 para poder obtener así la escala de grises entre 0 y 255.

       Código:
A=zeros(500,500)%creo una imagen de tamaño 500x500
%los datos de cada uno de los elementos de la matriz variaran entre 0 y 255
%porque utilizo el formato uint8 (para mas información consultar la ayuda
%de matlab).
%a continuación doy valores a cada uno de los elementos de la matriz para
%ir obteniendo un determinado tono de gris según vaya desde 0 hasta 255:
x=255;
for i=1:500
    for j=1:500
        A(i,j)=x;
        if x==0
            x=255;
        else
          x=x-1; 
        end
    end
end
%ya tengo una imagen en la que cada pixel va cambiado hacia un gris mas
%fuerte y al llegar al negro vuelve al gris mas claro(blanco)
%a continuación represento la imagen:
imshow(uint8(A));


       Resultado:
Como vemos en la imagen obtenida, a medida que avanzamos en los píxeles, el color va tomando una escala de gris de mas intenso a menos, puesto que le vamos dando valores a dichos píxeles desde 255 hasta 0.

  •  Imágenes en color(RGB):
 Ejemplo1:

       Explicación:
En este primer ejemplo creamos una imagen de tipo double. Para ello creamos un vector de tipo double con 3 parámetros que indican el numero de filas, el numero de columnas y el numero de elementos en cada pixel(serán 3 en este caso para representar los 3 colores principales rojo, verde y azul.
Posteriormente mediante 3 de bucles for, le damos valores consecutivos a cada uno de  los 3 elementos de cada pixel de la matriz y por último representamos la imagen.
En este caso los valores que le damos a la imagen varían entre 0 y 1 por lo que no cambio el tipo de datos de la imagen a uint8 sino que lo dejo como double:

       Código:
A=zeros(500,500,3)%creo una imagen de tamaño 500x500
%los datos de cada uno de los elementos de la matriz se componen de
%3 elementos a su vez(r,g,b)que variaran entre 0 y 1
%porque utilizo el formato rgb (para mas información consultar la ayuda
%de matlab).
%a continuación doy valores a cada uno de los elementos de la matriz para
%ir obteniendo un determinado color a las variables rgb de cada pixel:
x=0;
for e=1:3 
for i=1:500
    for j=1:500
        A(i,j,e)=x;
        if x>=1.00
            x=0;
        else
          x=x+0.0025;
        end
    end
end
end
%a continuación represento la imagen:
imshow(A);
%IMPORTANTE:
%si definimos los datos como hemos hecho, tipo double, los colores varían
%entre valores de 0 a 1 mientras que si los definimos de tipo uint8
%variaran entre 0 y 255 de 1 en 1.(mirar ejemplo3)


       Resultado:
Como vemos en la imagen aparecen colores que varían en cada uno de los píxeles de la misma, aunque lo hacen de forma continua puesto que el bucle for lo hemos definido para que vaya desde 0 a 1 con la misma variación en cada pixel y que cuando llega a 1 vuelva a 0 y continue hasta volver a 1 de nuevo con la misma desviación. Si queremos obtener otras formas de imagen basta con cambiar el bucle for.
imagencolor


 Ejemplo2:

       Explicación:
En este ejemplo realizamos lo mismo que en el ejemplo anterior pero cambiando la forma de la imagen, es decir, añadiendo en el bucle for nuevas sentencias:

       Código:
A=zeros(500,500,3)%creo una imagen de tamaño 500x500
%los datos de cada uno de los elementos de la matriz se componen de
%3 elementos a su vez(r,g,b)que variaran entre 0 y 1
%porque utilizo el formato rgb (para mas información consultar la ayuda
%de matlab).
%a continuación doy valores a cada uno de los elementos de la matriz para
%ir obteniendo un determinado color a las variables rgb de cada pixel:
x=0;
h=0;
for e=1:3  
for i=1:500
    for j=1:500
        A(i,j,e)=x;
        if x>=1.00
            x=0;
            h=h+1;
        elseif h<=300
          x=x+0.00025; 
        elseif h<=250
          x=x+0.00033;
        elseif h<=200
          x=x+0.00021;
        elseif h<=150
          x=x+0.00017;
        elseif h<=100
          x=x+0.00068;
        elseif h<=50
          x=x+0.00009;
        else
          x=x+0.00011;
        end
    end
end
end
%a continuación represento la imagen:
imshow(A);

beruby - te devolvemos dinero por tus compras y reservas online

       Resultado:
Ahora vemos que se obtiene otra forma de imagen con otro tipo de colores originados porque los valores que le damos a cada una de las 3 variables de los píxeles de la imagen ahora son diferentes.
imagencolor
 Ejemplo3:

       Explicación:
En este ejemplo realizamos lo mismo que en los ejemplos anteriores, pero cambiando la forma de los datos, es decir, usando el tipo uint8.

       Código:
A=zeros(500,500,3)%creo una imagen de tamaño 500x500
%los datos de cada uno de los elementos de la matriz se componen de
%3 elementos a su vez(r,g,b)que variaran entre 0 y 1
%porque utilizo el formato rgb (para mas información consultar la ayuda
%de matlab).
%a continuación doy valores a cada uno de los elementos de la matriz para
%ir obteniendo un determinado color a las variables rgb de cada pixel:
A=uint8(A);
x=0;
for e=1:3 
for i=1:500
    for j=1:500
        A(i,j,e)=x;
        if x==255
            x=0;
        else
          x=x+1;
        end
    end
end
end
%a continuación represento la imagen:
imshow(A);


       Resultado:
Como vemos el resultado es muy similar a los anteriores ejemplo.
imagengrises

Fin de las lecciones básicas para la creación y representación de imágenes con matlab.

Entrada principal

No hay comentarios:

Publicar un comentario