Effacer les filtres
Effacer les filtres

How to Create Graded lines inside the binary circle mask?

2 vues (au cours des 30 derniers jours)
fred bnm
fred bnm le 21 Mai 2018
Modifié(e) : fred bnm le 22 Mai 2018
I have a binary circle mask. and i need create new binary mask from that with Graded lines inside the circle.Degrees is 45,90,135,180. please guide me.
clc; clear;
%%create circle mask
mask = zeros(400,600);
position = [200,300];
cx = position(1);
cy = position(2);
r = 50;
[ix,iy] = size(mask);
[x,y]=meshgrid(-(cx-1):(ix-cx),-(cy-1):(iy-cy));
c_mask=((x.^2+y.^2)<=r^2)';
figure,imshow(c_mask)
%%Create Graded lines inside the circle.
%find center of circle
BW = c_mask;
prob = regionprops(BW,'centroid');
center = prob.Centroid;
figure, imshow(BW)
hold on
plot(center(1),center(2),'rx','MarkerSize',18,'LineWidth',2);

Réponses (1)

KSSV
KSSV le 21 Mai 2018
YOu decide the angles needed, and use this:
th = [45,90,135,180] ;
x = center(1)+r*cos(th) ;
y = center(2)+r*sin(th) ;
for i = 1:length(th)
plot([center(1) x(i)],[center(2) y(i)],'r')
end
Note that, to draw line, loop is not required.
  3 commentaires
KSSV
KSSV le 21 Mai 2018
Not clear.....can you elaborate?
fred bnm
fred bnm le 21 Mai 2018
i want create new mask using imwrite. but this code just plot.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by