el software de trabajo es MATLAB, en donde una imagen se trata una imagen se trata como una matriz con valores, para simplificar, se comienza trabajando con imágenes monocromáticas (son aquellas en escalas de grises de 0 a 255) o binarias (blancas y negras sin grises).
primero crearemos un fondo negro con un circulo blanco, para eso tenemos en cuenta las ecuación perimétrica de un circulo.
(X-X0)^2+(Y-Y0)^2
R_interno^2<(X-X0)^2+(Y-Y0)^2
teniendo en cuenta la ecuación anterior (si alguno sabe como puedo publicar ecuaciones matemáticas en blogger con una estética mejor que me lo diga) es fácil ver como podemos resolver la el problemas, los pixeles que satisfagan esta ecuación tendrán un valor de 1 y los que no se les asigna un 0.
for i=1:1:size
for j=1:1:size
if sqrt((i-x0))^2+(j-y0))^2)<=radius
mat_A(i,j)=1;
else
mat_A(i,j)=0;
end
end
end
para visualizar la matriz previamente debemos aplicar un comando que nos combierte los valores a escala de grises para visualizar en una imagen.
g=mat2gray(mat_A);
imshow (g);
podemos modificar un poco mas condición anterior para hacer una circunferencia con un un radio interno y uno externo. otra vez pensando en la ecuación perimétrica.
R_interno^2<(X-X0)^2+(Y-Y0)^2
for i=1:1:size
for j=1:1:size
if ((sqrt((i-x0)^2+(j-y0)^2)<=radius_ext )&&(sqrt((i-x0)^2+(j-y0)^2)>=radius_int))
mat_A(i,j)=1;
else
mat_A(i,j)=0;
end
end
end
si bien la función creada parece muy sencilla podemos ver que puede llegar a ser de utilidad, por ejemplo si tenes que marcar un objeto, con ingresar en la función los valores de X0 e Y0 crearemos un circulo blanco alrededor de la imagen.
