How to convert arc circle plot into binary circle?

 Réponse acceptée

R = 1;
th = linspace(0,2*pi,1000) ;
x = R*cos(th) ; y = R*sin(th) ;
xi = linspace(-2,2,100) ;
yi = linspace(-2,2,100) ;
[X,Y] = meshgrid(xi,yi) ;
Z = zeros(100) ;
idx = knnsearch([X(:) Y(:)],[x' y']) ;
Z(idx) = 1 ;
imagesc(Z)

3 commentaires

afiq rauf
afiq rauf le 17 Juin 2021
thank you, and may i know how can i remove the arc that i have shown in the first picture?
KSSV
KSSV le 17 Juin 2021
Remove the arc?
Change
th = linspace(0,2*pi,1000) ;
to only have the range of angles that you want the arc to cover.

Connectez-vous pour commenter.

Plus de réponses (1)

But for your purpose, instead of using plot(), multiply the coordinates by the resolution you want, and round() them, and then subtract off the minimum x and y . Now you have matrix coordinates.
resolution = 25;
th = linspace(0, 7*pi/9, 500);
r = 5;
xc = 3;
yc = 7;
[x,y] = pol2cart(th, r);
x = x + xc;
y = y + yc;
%the above are data coordinates. Make them into array coordinates.
buffer = 5;
xm = round(x * resolution);
ym = round(y * resolution);
xmin = min(xm);
ymin = min(ym);
xmax = max(xm);
ymax = max(ym);
xmc = xm - xmin + 1 + buffer;
ymc = ym - ymin + 1 + buffer;
arc_image = accumarray([ymc(:), xmc(:)], 1);
imshow(arc_image)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by