ellipses on image

3 次查看(过去 30 天)
thoraya
thoraya 2012-6-20
hi; I have a set of ellipses where each ellipse is defined by its center position (x,y) , an orientaion angle teta, major axe a and a minor axe b. i want to find a way in order to draw those ellipses on a given image* Img* . any idea please? thank you
  1 个评论
Image Analyst
Image Analyst 2012-7-8
"Burn" it into the image pixels, or just display above the image in the overlay (without changing image pixel values at all)?

请先登录,再进行评论。

回答(2 个)

Walter Roberson
Walter Roberson 2012-7-8
One way is to calculate a circle such as is described in the FAQ. Make it a unit circle as you first calculate it. Multiply the x coordinates by (a/2) and the y coordinates by (b/2). Then use hgtransform() to rotate it around the angle. Finally, add the center coordinates to the transformed results.
  4 个评论
Richard Brown
Richard Brown 2012-7-9
Sorry, didn't read the question properly:
phi = linspace(0, 2*pi, 100);
Q = [cos(theta), -sin(theta); sin(theta), cos(theta)];
X = bsxfun(@plus, [xc; yc], Q * [a/2 * cos(phi); b/2 * sin(phi)]);
plot(X(1, :), X(2, :))
... yes, your way may be cleaner :)
Walter Roberson
Walter Roberson 2012-7-9
I have no objection to using a rotation matrix instead of hgtransform() :-)

请先登录,再进行评论。


Ryan
Ryan 2012-7-9
编辑:Ryan 2012-7-9
Use pdeellip (if you have the PDE toolbox):
pdeellip(xc,yc,a,b,phi)
Where:
(xc,yc) = centroid
(a,b) = semiaxes
phi = rotation of ellipse

类别

Help CenterFile Exchange 中查找有关 Animation 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by