I am plotting random circles using the plot function on a white background, how to convert this plot to a binary matrix?

4 visualizaciones (últimos 30 días)
So I am trying to simulate some random circles on an image.
I am creating a white background of the appropriate resolution by:
%Create blank white image
xres = 2304;
yres = 3456;
img = ones(xres,yres);
%plot
figure, imshow(img);
hold on
Then generating a bunch of random circles using a custom function by:
%% Generate random bubble, based on above distribution
randomDiam = lognrnd(mu,sigma,nBubbles);
randomX = yres*rand(nBubbles,1);
randomY = xres*rand(nBubbles,1);
for ii = 1:nBubbles
generateCircle(randomX(ii),randomY(ii),randomDiam(ii));
end
My generateCircle function simply uses plot to plot the cricles:
function generateCircle(x,y,d)
%Resolution of circle set by 0.01 right now
theta = 0:0.01:2*pi;
%convert to circle plot
xp = (d/2)*cos(theta);
yp = (d/2)*sin(theta);
%plot
plot(x+xp,y+yp,'k');
end
This works great and creates the following:
untitled.jpg
However, I need to do further analysis on this. How do I convert this to an actual logical matrix?
The way I'm doing it now, the circles don't actually register in my img matrix.
Any ideas??
  5 comentarios
Image Analyst
Image Analyst el 2 de Feb. de 2019
You can try my shape recognition code where I put up random shapes. Adapt the attached code as needed.

Iniciar sesión para comentar.

Respuesta aceptada

Mark Lepage
Mark Lepage el 2 de Feb. de 2019
Hey everyone,
I got around this by using
imageOut = insertShape(img,'FilledCircle',M,'Color','black','Opacity',1);
where img is the white background I created, and M is an [x,y,r] matrix for the circles position and radii.
Thanks

Más respuestas (1)

Image Analyst
Image Analyst el 2 de Feb. de 2019
If you want solid circles, you can use poly2mask() to burn each circle into a binary image. Then OR that binary image from that one circle into your "master" image that contains ALL the circles.

Categorías

Más información sobre Images en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by