skimage2.draw.rectangle_perimeter#
- skimage2.draw.rectangle_perimeter(start, end=None, extent=None, shape=None, clip=False)[source]#
Generate coordinates of pixels that are exactly around a rectangle.
- Parameters:
- starttuple
Origin point of the inner rectangle, e.g.,
(row, column).- endtuple
End point of the inner rectangle
(row, column). For a 2D matrix, the slice defined by inner the rectangle is[start:(end+1)]. Eitherendorextentmust be specified.- extenttuple
The extent (size) of the inner rectangle. E.g.,
(num_rows, num_cols). Eitherendorextentmust be specified. Negative extents are permitted. Seerectangleto better understand how they behave.- shapetuple, optional
Image shape used to determine the maximum bounds of the output coordinates. This is useful for clipping perimeters that exceed the image size. By default, no clipping is done. Must be at least length 2. Only the first two values are used to determine the extent of the input image.
- clipbool, optional
Whether to clip the perimeter to the provided shape. If this is set to True, the drawn figure will always be a closed polygon with all edges visible.
- Returns:
- coordsarray of int, shape (2, Npoints)
The coordinates of all pixels in the rectangle.
Examples
>>> import numpy as np >>> from _skimage2.draw import rectangle_perimeter >>> img = np.zeros((5, 6), dtype=np.uint8) >>> start = (2, 3) >>> end = (3, 4) >>> rr, cc = rectangle_perimeter(start, end=end, shape=img.shape) >>> img[rr, cc] = 1 >>> img array([[0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1], [0, 0, 1, 0, 0, 1], [0, 0, 1, 0, 0, 1], [0, 0, 1, 1, 1, 1]], dtype=uint8)
>>> img = np.zeros((5, 5), dtype=np.uint8) >>> r, c = rectangle_perimeter(start, (10, 10), shape=img.shape, clip=True) >>> img[r, c] = 1 >>> img array([[0, 0, 0, 0, 0], [0, 0, 1, 1, 1], [0, 0, 1, 0, 1], [0, 0, 1, 0, 1], [0, 0, 1, 1, 1]], dtype=uint8)