dimenciones de un objeto en imagen
Publicado por frank arias (2 intervenciones) el 03/11/2012 01:11:01
Buenas tardes, estoy haciendo un programa que cuente los objetos que hay en la imagen y que calcule su altura y su ancho. Logro encontrarlos y mediante la función rectangle los identifico, pero no me muestra la cantidad de objetos identificados. Con la función Centroid encuentro su centro y con la imline dibujo una línea pero no en todos los rectángulos.
como puedo optimizar mi programa?
Gracias por la colaboración; este es el código que utilizo:
img = imread('coins.png');
im_g=img;
umb=graythresh(im_g);
bw=im2bw(im_g,umb);
imshow(img)
[L Ne]=bwlabel(bw);
propied= regionprops(L);
hold on
for n=1:size(propied,1)
xy=rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2);
bw2 = imfill(bw,'holes');
s = regionprops(bw2, 'centroid');
centroids = cat(1, s.Centroid);
%imtool(img)
hold(imgca,'on')
plot(imgca,centroids(:,1), centroids(:,2), 'r.')
hold(imgca,'off')
%linmea, se dibujan varias linea pero no en su rectangulo, ni con su
%posicion
h = imline(imgca,[10 100], [100 100]);
setColor(h,[1 1 1]);
id = addNewPositionCallback(h,@(pos) title(mat2str(pos,3)));
end
como puedo optimizar mi programa?
Gracias por la colaboración; este es el código que utilizo:
img = imread('coins.png');
im_g=img;
umb=graythresh(im_g);
bw=im2bw(im_g,umb);
imshow(img)
[L Ne]=bwlabel(bw);
propied= regionprops(L);
hold on
for n=1:size(propied,1)
xy=rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2);
bw2 = imfill(bw,'holes');
s = regionprops(bw2, 'centroid');
centroids = cat(1, s.Centroid);
%imtool(img)
hold(imgca,'on')
plot(imgca,centroids(:,1), centroids(:,2), 'r.')
hold(imgca,'off')
%linmea, se dibujan varias linea pero no en su rectangulo, ni con su
%posicion
h = imline(imgca,[10 100], [100 100]);
setColor(h,[1 1 1]);
id = addNewPositionCallback(h,@(pos) title(mat2str(pos,3)));
end
Valora esta pregunta


0