bundles / skimage 0.26.1rc0.dev0+git20260530.b607368ff / skimage / draw / draw / ellipse
function
skimage.draw.draw:ellipse
source: /dev/scikit-image/src/skimage/draw/draw.py :54
Signature
def ellipse ( r , c , r_radius , c_radius , shape = None , rotation = 0.0 ) Summary
Generate coordinates of pixels within ellipse.
Parameters
r, c: doubleCentre coordinate of ellipse.
r_radius, c_radius: doubleMinor and major semi-axes.
(r/r_radius)**2 + (c/c_radius)**2 = 1.shape: tuple, optionalImage shape which is used to determine the maximum extent of output pixel coordinates. This is useful for ellipses which exceed the image size. By default the full extent of the ellipse are used. Must be at least length 2. Only the first two values are used to determine the extent.
rotation: float, optional (default 0.)Set the ellipse rotation (rotation) in range (-PI, PI) in contra clock wise direction, so PI/2 degree means swap ellipse axis
Returns
rr, cc: ndarray of intPixel coordinates of ellipse. May be used to directly index into an array, e.g.
img[rr, cc] = 1.
Notes
The ellipse equation
((x * cos(alpha) + y * sin(alpha)) / x_radius) ** 2 + ((x * sin(alpha) - y * cos(alpha)) / y_radius) ** 2 = 1
Note that the positions of ellipse without specified shape can have also, negative values, as this is correct on the plane. On the other hand using these ellipse positions for an image afterwards may lead to appearing on the other side of image, because image[-1, -1] = image[end-1, end-1]
>>> rr, cc = ellipse(1, 2, 3, 6) >>> img = np.zeros((6, 12), dtype=np.uint8) >>> img[rr, cc] = 1 >>> img array([[1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1]], dtype=uint8)
Examples
from skimage.draw import ellipse img = np.zeros((10, 12), dtype=np.uint8) rr, cc = ellipse(5, 6, 3, 5, rotation=np.deg2rad(30)) img[rr, cc] = 1 img✓
Aliases
-
skimage.draw.ellipse