Guardar con el nombre, p.ej. DetecCir.m y ejecutar en Matlab. El fichero que se evalúa es el indicado abajo en rojo, cuya foto es ésta.
Contenido el fichero DetecCir.m
%Ejemplo que usa la "Image Processing Toolbox" de Matlab para buscar círculos en una foto
%Para ver cómo se ve la excentricidad usar fichero formas.jpg
%Para buscar círculos usar fichero formas2.jpg
close all
image=imread('c:\formas2.jpg'); % Lee el fichero y lo carga en la variable ? image
img=im2bw(image); % Binariza la imagen y la guarda en la variable ? img
imshow(img); % Muestra la imagenen binaria de la variable img en la pantalla
[label num] = bwlabel(img,8); %Etiqueta los objetos encontrados en la variable img con área > de 8 pixeles
impixelregion %Muestra el tool con el que se puede ver el valor de cada pixel
graindata=regionprops(label,'all');
for i=1:num
if graindata(i).Eccentricity < 0.5 %Excentricidad > 0 implica que la forma se aleja de ser redonda.
found=i;
area=graindata(found).Area;
radius=sqrt(area/pi);
radius=1.2*radius;
centroid=graindata(found).Centroid;
t=0:pi/20:2*pi;
x=centroid(1)+radius*cos(t);
y=centroid(2)+radius*sin(t);
hold on;
plot(x,y);
end
end
Resultadio:
If you did like this project you can donate some cents of Bitcoins SV in the following address.
1sAZQMy5Ci1G88CmbucFJDsF7TxeXAcko
or bitcoin cash in the address:
qzmjpeqrlgd3flltpavm9t2xh0nz8y97mggajvvqnv
thanks😊

eres bn chido gracias, con esto terminare mi proyecto de la escuela :D
ResponderEliminar