jueves, 17 de junio de 2010

Segmentación de Imagenes

Para la realización de esta práctica hemos escogido imágenes redondas (Monedas del Ecuador) y los identificaremos a estos objetos mediante sus propiedades










I_moneda=imread('MonedasEcuador.jpg');
figure; imshow(I_moneda);










Ahora obtendremos la imagen en escala de grises, utilizando la función rgb2gray
Esta función permite convertir una imagen de tipo RGB en escala de Grises









I=rgb2gray(I_moneda);
figure; imshow(I)






Nos interesa preservar la naturaleza del objeto que en este caso es circular, por lo que utilizaremos un radio de 88 pixeles

background=imclose(I,strel('disk',88));

Identificacion de objetos







I2=imsubtract(background,I);
figure; imshow(I2)








Mediante la función graythresh se podrá hallar el umbral de binarización utilizando la función im2bw.

El parámetro thresh indica el umbral de binarización




lavel=graythresh(I2);
intensidad=lavel*255
BW=im2bw(I2,lavel);
figure; imshow(BW)













Relleno de objetos


fill=imfiLl(BW,'holes');
figure; imshow(fill)



A continuación identificaremos los objetos
[niveles, numObjects]=bwlabel(BW,8);
numObjects
stats=regionprops(niveles,'Eccentricity','Area','BoundingBox');
areas=[stats.Area]
excentricidad=[stats.Eccentricity]


Para una mejor comprensión del tema obtendremos algunos conceptos:
Stats: podríamos decir que es una matriz que posee la loguitud que la de los objetos en este caso las monedas

Workspace




'Eccentricity'
realiza cálculos de eccentricidad, área y encierres para los objetos.












































3 comentarios:

  1. Al momento de escoger una imagen es importante tomar en cuenta la iluminación que tiene dicho objeto, para la escala de grises en la práctica realizada hemos determinado el valor de 88 (Rango del disk) ya que mediante este valor se obtiene una mejor visualización de la imagen.

    ResponderEliminar
  2. Al determinar la umbralizacion de imagenes se tomara en cuenta que a raiz de la umbralizacion se tomara un valor tope de la imagen a traves de un histograma donde el valor maximo es el color que mas predomina dentro de la imagen asi que se tratara de aproximar ese color a 255 entre otros valores, tambien es adecuado tener una idea concreta de la segmentacion de imagenes donde se definiran que objetos se desean segmentar el caso de las monedas es el mas utilizado para poder tener una idea de las funciones que tienen cada linea de codigo

    ResponderEliminar
  3. Revisando el codigo me llamo mucho el comendo "im2bw" el cual se encuentra incluida en el toolbox de procesamiento de imágenes de Matlab.

    Esta función convierte imágenes en color o escala de grises en imágenes binarias, basándose en un determinado umbral, el cual se calcula con la función “graytresh”, que devuelve el valor del umbral más adecuado para una imagen determinada y que puede ser usado como parámetro de entrada en la función “im2bw”.

    ResponderEliminar