Rectangle¶
- class Rectangle[source]¶
Bases:
supervisely.geometry.geometry.Geometry
Rectangle geometry for a single
Label
.Rectangle
class object is immutable.- Parameters
- top : int or float
Minimal vertical value of Rectangle object.
- left : int or float
Minimal horizontal value of Rectangle object.
- bottom : int or float
Maximal vertical value of Rectangle object.
- right : int or float
Maximal vertical value of Rectangle object.
- sly_id : int, optional
Rectangle ID in Supervisely server.
- class_id : int, optional
ID of
ObjClass
to which Rectangle belongs.- labeler_login : str, optional
Login of the user who created Rectangle.
- updated_at : str, optional
Date and Time when Rectangle was modified last. Date Format: Year:Month:Day:Hour:Minute:Seconds. Example: ‘2021-01-22T19:37:50.158Z’.
- created_at : str, optional
Date and Time when Rectangle was created. Date Format is the same as in “updated_at” parameter.
- Raises
ValueError
. Rectangle top argument must have less or equal value then bottom, left argument must have less or equal value then right- Usage example
import supervisely as sly top = 100 left = 100 bottom = 700 right = 900 figure = sly.Rectangle(top, left, bottom, right)
Methods
allowed_transforms
Clone from GEOMETRYYY
config_from_json
config_to_json
Checks if Rectangle contains a given Rectangle object.
Checks if Rectangle contains a given PointLocation object.
convert
Crops current Rectangle.
- param bitmap
np.ndarray
Draws the figure contour on a given bitmap canvas :param bitmap: np.ndarray :param color: [R, G, B] :param thickness: (int) :param config: drawing config specific to a concrete subclass, e.g.
Flips current Rectangle in horizontal.
Flips current Rectangle in vertical.
Create Rectangle with given array shape.
Create Rectangle from given geometry objects.
Convert a json dict to Rectangle.
Create Rectangle with given size shape.
geometry_name
Slice of given numpy array with Rectangle.
Returns 2D boolean mask of the geometry.
Checks intersects Rectangle with given Rectangle object or not.
Same as geometry_name(), but shorter.
Crops object like "crop" method, but return results with coordinates relative to rect :param rect: :return: list of Geometry
Resizes current Rectangle.
Rotates current Rectangle.
Scales current Rectangle.
Makes a copy of Rectangle.
Convert the Rectangle to a json dict.
Height and width of Rectangle.
Translates current Rectangle.
validate
Attributes
Rectangle area.
Maximal vertical value of Rectangle.
Center of Rectangle.
Get list of Rectangle corners.
Height of Rectangle
Minimal horizontal value of Rectangle.
Maximal horizontal value of Rectangle.
Minimal vertical value of Rectangle.
Width of Rectangle.
- clone()¶
Clone from GEOMETRYYY
- contains_point_location(pt)[source]¶
Checks if Rectangle contains a given PointLocation object.
- Parameters
- pt : PointLocation
PointLocation object.
- Returns
True if Rectangle contains given PointLocation object, otherwise False
- Return type
- Usage Example
import supervisely as sly pt = sly.PointLocation(250, 300)) print(figure.contains_point_location(pt)) # Output: True
- crop(other)[source]¶
Crops current Rectangle.
- Parameters
- rect : Rectangle
Rectangle object for crop.
- Returns
List of Rectangle objects
- Return type
- Usage Example
import supervisely as sly crop_figures = figure.crop(sly.Rectangle(0, 0, 300, 350))
-
draw(bitmap, color, thickness=
1
, config=None
)¶ - Parameters
- bitmap
np.ndarray
- color
[R, G, B]
- thickness
used only in Polyline and Point
- config
drawing config specific to a concrete subclass, e.g. per edge colors
-
draw_contour(bitmap, color, thickness=
1
, config=None
)¶ Draws the figure contour on a given bitmap canvas :param bitmap: np.ndarray :param color: [R, G, B] :param thickness: (int) :param config: drawing config specific to a concrete subclass, e.g. per edge colors
- fliplr(img_size)[source]¶
Flips current Rectangle in horizontal.
- Parameters
- Returns
Rectangle object
- Return type
- Usage Example
# Remember that Rectangle class object is immutable, and we need to assign new instance of Rectangle to a new variable height, width = 300, 400 fliplr_figure = figure.fliplr((height, width))
- flipud(img_size)[source]¶
Flips current Rectangle in vertical.
- Parameters
- Returns
Rectangle object
- Return type
- Usage Example
# Remember that Rectangle class object is immutable, and we need to assign new instance of Rectangle to a new variable height, width = 300, 400 flipud_figure = figure.flipud((height, width))
- classmethod from_array(arr)[source]¶
Create Rectangle with given array shape.
- Parameters
- arr : np.ndarray
Numpy array.
- Returns
Rectangle object
- Return type
- Usage Example
import supervisely as sly np_array = np.zeros((300, 400)) figure_from_np = sly.Rectangle.from_array(np_array)
- classmethod from_geometries_list(geometries)[source]¶
Create Rectangle from given geometry objects.
- Parameters
- Returns
Rectangle object
- Return type
- Usage Example
import supervisely as sly geom_objs = [sly.Point(100, 200), sly.Polyline([sly.PointLocation(730, 2104), sly.PointLocation(2479, 402)])] figure_from_geom_objs = sly.Rectangle.from_geometries_list(geom_objs)
- classmethod from_json(data)[source]¶
Convert a json dict to Rectangle. Read more about Supervisely format.
- get_cropped_numpy_slice(data)[source]¶
Slice of given numpy array with Rectangle.
- Parameters
- data : np.ndarray
Numpy array.
- Returns
Sliced numpy array
- Return type
np.ndarray
- Usage Example
np_slice = np.zeros((200, 500)) mask_slice = figure.get_cropped_numpy_slice(np_slice) print(mask_slice.shape) # Output: (199, 499)
- get_mask(img_size)¶
Returns 2D boolean mask of the geometry. With shape as img_size (height, width) and filled with True values inside the geometry and False values outside. dtype = np.bool shape = img_size
- classmethod name()¶
Same as geometry_name(), but shorter. In order to make the code more concise.
- Returns
string with name of geometry
- relative_crop(rect)¶
Crops object like “crop” method, but return results with coordinates relative to rect :param rect: :return: list of Geometry
- resize(in_size, out_size)[source]¶
Resizes current Rectangle.
- Parameters
- Returns
Rectangle object
- Return type
- Usage Example
# Remember that Rectangle class object is immutable, and we need to assign new instance of Rectangle to a new variable in_height, in_width = 300, 400 out_height, out_width = 600, 800 resize_figure = figure.resize((in_height, in_width), (out_height, out_width))
- rotate(rotator)[source]¶
Rotates current Rectangle.
- Parameters
- rotator : ImageRotator
ImageRotator object for rotation.
- Returns
Rectangle object
- Return type
- Usage Example
from supervisely.geometry.image_rotator import ImageRotator # Remember that Rectangle class object is immutable, and we need to assign new instance of Rectangle to a new variable height, width = 300, 400 rotator = ImageRotator((height, width), 25) rotate_figure = figure.rotate(rotator)
- to_bbox()[source]¶
Makes a copy of Rectangle.
- Returns
Rectangle object
- Return type
- Usage Example
# Remember that Rectangle class object is immutable, and we need to assign new instance of Rectangle to a new variable new_figure = figure.to_bbox()
- to_json()[source]¶
Convert the Rectangle to a json dict. Read more about Supervisely format.
- Returns
Json format as a dict
- Return type
- Usage example
figure_json = figure.to_json() print(figure_json) # Output: { # "points": { # "exterior": [ # [100, 100], # [900, 700] # ], # "interior": [] # } # }
- to_size()[source]¶
Height and width of Rectangle.
- Returns
Height and width of Rectangle object
- Return type
Tuple[int, int]
- Usage Example
height, width = figure.to_size() print(height, width) # Output: 700 900
- property area¶
Rectangle area.
- Returns
Area of current Rectangle object
- Return type
- Usage Example
print(figure.area) # Output: 7288.0
- property bottom¶
Maximal vertical value of Rectangle.
- Returns
Maximal vertical value
- Return type
- Usage Example
print(figure.bottom) # Output: 700
- property center¶
Center of Rectangle.
- Returns
PointLocation object
- Return type
- Usage Example
center = figure.center()
- property corners¶
Get list of Rectangle corners.
- Returns
List of PointLocation objects
- Return type
- Usage Example
corners = figure.corners for corner in corners: print(corner.row, corner.col) # Output: # 100 100 # 100 900 # 700 900 # 700 100
- property height¶
Height of Rectangle
- Returns
Height
- Return type
- Usage Example
print(figure.height) # Output: 601
- property left¶
Minimal horizontal value of Rectangle.
- Returns
Minimal horizontal value
- Return type
- Usage Example
print(figure.left) # Output: 100
- property right¶
Maximal horizontal value of Rectangle.
- Returns
Maximal horizontal value
- Return type
- Usage Example
print(figure.right) # Output: 900
- property top¶
Minimal vertical value of Rectangle.
- Returns
Minimal vertical value
- Return type
- Usage Example
print(rectangle.top) # Output: 100