GraphNodes¶
-
class GraphNodes(nodes, sly_id=
None, class_id=None, labeler_login=None, updated_at=None, created_at=None)[source]¶ Bases:
GeometryGeometry representing a graph of labeled keypoints: a collection of
Nodeobjects for pose estimation, skeletons, or structured point sets (e.g. nose, left_eye, right_shoulder).GraphNodes geometry for a single
Label.GraphNodesclass object is immutable.- Parameters:
- nodes : dict¶
Dict or List containing nodes of graph
- sly_id : int, optional¶
GraphNodes ID in Supervisely server.
- class_id : int, optional¶
ID of ObjClass to which GraphNodes belongs.
- labeler_login : str, optional¶
Login of the user who created
GraphNodes.- updated_at : str, optional¶
Date and Time when GraphNodes 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 GraphNodes was created. Date Format is the same as in “updated_at” parameter.
- Usage Example:
import supervisely as sly from supervisely.geometry.graph import Node, GraphNodes vertex_1 = Node(sly.PointLocation(5, 5)) vertex_2 = Node(sly.PointLocation(100, 100)) vertex_3 = Node(sly.PointLocation(200, 250)) nodes = {0: vertex_1, 1: vertex_2, 2: vertex_3} figure = GraphNodes(nodes)
Methods
Returns the allowed transforms for the GraphNodes.
Makes a copy of the GraphNodes.
Convert graph template from json format
Convert graph template to json format
Convert geometry to another geometry shape.
Crops current GraphNodes.
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.
Flips current GraphNodes in horizontal.
Flips current GraphNodes in vertical.
Convert a json dict to GraphNodes.
geometry_nameReturns 2D boolean mask of the geometry.
Get the name of the geometry.
Crops current GraphNodes with given rectangle and shifts it on value of rectangle left top angle.
Resizes current GraphNodes.
Rotates current GraphNodes.
Scales current GraphNodes.
Create Rectangle object from current GraphNodes.
Convert the GraphNodes to list.
Translates current GraphNodes.
Checks the graph for correctness and compliance with the template
Attributes
GraphNodes area.
items_json_fieldCopy of GraphNodes nodes.
- classmethod from_json(data)[source]¶
Convert a json dict to GraphNodes. Read more about Supervisely format.
- Parameters:
- Returns:
GraphNodes from json.
- Return type:
- Usage Example:
figure_json = { "nodes": { "0": {"loc": [5, 5]}, "1": {"loc": [100, 100]}, "2": {"loc": [250, 200]} } } from supervisely.geometry.graph import GraphNodes figure = GraphNodes.from_json(figure_json)
- classmethod name()¶
Get the name of the geometry.
Same as
geometry_name(), but shorter. In order to make the code more concise.- Returns:
string with name of geometry
- clone()[source]¶
Makes a copy of the GraphNodes.
- Returns:
Copy of GraphNodes.
- Return type:
- Usage Example:
# Remember that GraphNodes class object is immutable, and we need to assign new instance of PointLocation to a new variable new_figure = figure.clone()
-
convert(new_geometry, contour_radius=
0, approx_epsilon=None)¶ Convert geometry to another geometry shape.
- crop(rect)[source]¶
Crops current GraphNodes.
- Parameters:
- rect¶
Rectangle for crop.
- Returns:
List of GraphNodes after crop.
- Return type:
List[
GraphNodes]- Usage Example:
import supervisely as sly crop_figures = figure.crop(sly.Rectangle(0, 0, 300, 350))
-
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 GraphNodes in horizontal.
- Parameters:
- img_size : Tuple[int, int]¶
Input image size (height, width) to which belongs
GraphNodes.
- Returns:
GraphNodes after flip in horizontal.
- Return type:
- Usage Example:
# Remember that GraphNodes 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 GraphNodes in vertical.
- Parameters:
- Returns:
GraphNodes after flip in vertical.
- Return type:
- Usage Example:
# Remember that GraphNodes 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))
- 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
- relative_crop(rect)[source]¶
Crops current GraphNodes with given rectangle and shifts it on value of rectangle left top angle.
- Parameters:
- rect¶
Rectangle for crop.
- Returns:
List of GraphNodes after relative crop.
- Return type:
List[
GraphNodes]- Usage Example:
import supervisely as sly rel_crop_figures = figure.relative_crop(sly.Rectangle(0, 0, 300, 350))
- resize(in_size, out_size)[source]¶
Resizes current GraphNodes.
- Parameters:
- in_size : Tuple[int, int]¶
Input image size (height, width) to which belongs
GraphNodes.- out_size : Tuple[int, int]¶
Desired output image size (height, width) to which belongs
GraphNodes.
- Returns:
GraphNodes after resize.
- Return type:
- Usage Example:
# Remember that GraphNodes 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 GraphNodes.
- Parameters:
- rotator¶
Class for image rotation.
- Returns:
GraphNodes after rotation.
- Return type:
- Usage Example:
from supervisely.geometry.image_rotator import ImageRotator # Remember that GraphNodes 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)
- scale(factor)[source]¶
Scales current GraphNodes.
- Parameters:
- Returns:
GraphNodesobject- Return type:
- Usage Example:
# Remember that GraphNodes class object is immutable, and we need to assign new instance of Rectangle to a new variable scale_figure = figure.scale(0.75)
- to_bbox()[source]¶
Create Rectangle object from current GraphNodes.
- Returns:
Rectangle from GraphNodes.
- Return type:
- Usage Example:
rectangle = figure.to_bbox()
- to_json()[source]¶
Convert the GraphNodes to list. Read more about Supervisely format.
- Returns:
Json format as a dict
- Return type:
- Usage Example:
import supervisely as sly from supervisely.geometry.graph import Node, GraphNodes vertex_1 = Node(sly.PointLocation(5, 5)) vertex_2 = Node(sly.PointLocation(100, 100)) vertex_3 = Node(sly.PointLocation(200, 250)) nodes = {0: vertex_1, 1: vertex_2, 2: vertex_3} figure = GraphNodes(nodes) figure_json = figure.to_json() print(figure_json) # Output: { # "nodes": { # "0": { # "loc": [5, 5] # }, # "1": { # "loc": [100, 100] # }, # "2": { # "loc": [250, 200] # } # } # }
- transform(transform_fn)[source]¶
- Parameters:
- transform_fn : function¶
Function to convert GraphNodes.
- Returns:
GraphNodes after transformation.
- Return type:
- transform_locations(transform_fn)[source]¶
- Parameters:
- transform_fn : function¶
Function to convert GraphNodes location.
- Returns:
GraphNodes after transformation.
- Return type:
- translate(drow, dcol)[source]¶
Translates current GraphNodes.
- Parameters:
- Returns:
GraphNodes after translate.
- Return type:
- Usage Example:
# Remember that GraphNodes class object is immutable, and we need to assign new instance of Rectangle to a new variable translate_figure = figure.translate(150, 250)
- validate(name, settings)[source]¶
Checks the graph for correctness and compliance with the template
- Parameters:
- Raises:
ValueError – if graph contains nodes not declared in the template