Hello, I wish to draw concentric circles on an image. The radius of each circle is known. The circles are to be plot on the specific position of picture whereby every circle has the same centre. How may i able to do it? The following syntax below is used to generate the concentric circles. I wish to do that on an image. Plus, the circles should be drawn on image with right scalling. Thank you.
%Syntax for concentric circles
theta = [-pi:pi/36:pi];
hold on;
for r=[5,10,15]
plot(r * cos(theta), r * sin(theta))
end

 채택된 답변

KSSV
KSSV 2021년 6월 9일

2 개 추천

I = imread('peppers.png') ;
[m,n,p] = size(I) ;
C = round([n m]/2) ; % center of circle
th = linspace(0,2*pi) ;
imshow(I)
hold on
% draw concentric circle
for r = 5:5:50
x = C(1)+r*cos(th) ;
y = C(2)+r*sin(th) ;
plot(x,y)
end

댓글 수: 6

Thank you so much. It did work, but if I want to have the centre at different position, is it possible? How may i get the coordinates of different position in the picture (like if I click on the certain position, it will be the centre of the circle) or get the coordinates values directly via any method. Thank you.
KSSV
KSSV 2021년 6월 9일
Read about ginput. getpts to get the points by mouse click.
Alright, thanks again.
KSSV
KSSV 2021년 6월 9일
Thanks is accepting and voting the answer... 😄
Like
for radius = 5 : 5 : 50
message = sprintf('Click where you want the center to be');
uiwait(helpdlg(message));
[xCenter, yCenter] = ginput(1);
x = radius * cos(th) + xCenter;
y = radius * sin(th) + yCenter;
plot(x, y, '-');
end
Nice, this one worked,,,Thankss

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Data Exploration에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by