jueves, 8 de julio de 2010

Delimitacion de Frutas (Ejemplo)


Este ejercicio es una reforzamiento acerca de la delimitacion de objetos se basa en el mismo codigo de las monedas pero hora con una variable la cual es que los objetos ya no son redondos o de la misma forma estos poseen formas distintas. Al realizar este ejercio se sucitaron varios problemas uno de ellos es que el codigo no distinguia las imagenes al estar pegadas o juntas lo que provoco una gran confusion al ejecutarlo por ello se concreto el codigo en esta imagen la cual demostrara como el programa puede distinguir entre objetos de distinta forma.

%% Adquirir imagenes
I_original=imread('frutas.jpg');

%% Cambiar la imagen a escala de grises
I=rgb2gray(I_original);

%% Obtener el fondo de la imagen
background=imclose(I,strel('disk',58));

%% Identificacion de objetos
I2=imsubtract(background,I);

%% Binarizar imagen
lavel=graythresh(I2);
intensidad=lavel*255
BW=im2bw(I2,lavel);

%% Relleno de objetos (filtro de la media)
fill=imfill(BW,'holes');

%% Identificar objetos
[niveles, numObjects]=bwlabel(BW,4);
numObjects
stats=regionprops(niveles,'Eccentricity','Area','BoundingBox');
areas=[stats.Area];
excentricidad=[stats.Eccentricity]

%% Delimitar manzana
cantidad=0;
manzana=find(areas>80 & areas < style="">
statsmanzana=stats(manzana)
axes(handles.axes1)
imshow(I_original)
hold on;
cantidad =length(statsmanzana)*1+ cantidad ;
for idx = 1:length(statsmanzana);
h = rectangle ('Position',statsmanzana(idx).BoundingBox,...
'Curvature',[1,0.8],'LineWidth',5,'LineStyle','-.');
set (h,'EdgeColor',[0 0 1]);
hold on

end
hold off
disp([cantidad,'manzana'])
set(handles.valor,'string',cantidad)



3 comentarios:

  1. Hay varios planteamientos para la utilización de la delimitacion de objetos uno podria ser en el ambito medico donde el sistema puede detectar alguna anomalia que el ojo humano no pueda detectar dentro de una placa de rayos X u otras aplicaciones.
    Un campo muy atractivo en esta materia son los contornos activos. Se trata de
    emplear una curva cerrada que vaya adaptándose dinámicamente hasta alcanzar la
    frontera del objeto. A partir de ahi el especialista podra tener una herramienta que permita detectar cualquier posible enfermedad

    ResponderEliminar
  2. Con respecto al contratiempo sobre las imagenes juntas se puede solucionar mediante el reconocimuiento del color de las frutas.
    Con esto se puede aplicar en varuios ámbitos, uno de ellos la medicina, ya que en las tomografias, rayos X, etc, por medio del color se pueden revelar anomalías en el cuerpo.

    Ademas de el color se puede tambien reconocer la forma, por ejemplo: reconocimiento de figuras geométricas, esto puede ser muy hipectivo, ya que puede ser aplicado en el ámbito educativo.
    esta y muchas otras aplicaciones se pueden realizar con este pequeño codigo.

    ResponderEliminar
  3. Lo que me pareció interesante es que cuando se desea determinar la zona de trabajo en este caso de un figuras, como cada figura tienen diferente forma no encontraríamos dificultad alguna. Pero si fuera objetos redondos y similares se tendría que cambiar de posición para determinar o identificar el objeto.

    ResponderEliminar