Source code for supervisely.api.image_annotation_tool_api

# coding: utf-8

import json
import os
import time
from collections import OrderedDict, defaultdict

from requests_toolbelt import MultipartEncoder, MultipartEncoderMonitor

from supervisely._utils import batched
from supervisely.api.module_api import (
    ApiField,
    ModuleApiBase,
    ModuleWithStatus,
    WaitingTimeExceeded,
)
from supervisely.collection.str_enum import StrEnum
from supervisely.io.fs import ensure_base_path, get_file_hash, get_file_name


[docs]class ImageAnnotationToolAction(StrEnum): SET_FIGURE = "figures/setFigure" """""" NEXT_IMAGE = "images/nextImage" """""" PREV_IMAGE = "images/prevImage" """""" SET_IMAGE = "images/setImage" """""" ZOOM_TO_FIGURE = "scene/zoomToObject" """"""
[docs]class ImageAnnotationToolApi(ModuleApiBase): def set_figure(self, session_id, figure_id): """ """ return self._act( session_id, ImageAnnotationToolAction.SET_FIGURE, {ApiField.FIGURE_ID: figure_id} ) def next_image(self, session_id, image_id): """ """ return self._act( session_id, ImageAnnotationToolAction.NEXT_IMAGE, {ApiField.IMAGE_ID: image_id} ) def prev_image(self, session_id, image_id): """ """ return self._act( session_id, ImageAnnotationToolAction.PREV_IMAGE, {ApiField.IMAGE_ID: image_id} ) def set_image(self, session_id, image_id): """ """ return self._act( session_id, ImageAnnotationToolAction.SET_IMAGE, {ApiField.IMAGE_ID: image_id} ) def zoom_to_figure(self, session_id, figure_id, zoom_factor=1): """ """ return self._act( session_id, ImageAnnotationToolAction.ZOOM_TO_FIGURE, {ApiField.FIGURE_ID: figure_id, ApiField.ZOOM_FACTOR: zoom_factor}, ) def disable_buttons(self, session_id, buttons): pass def _act(self, session_id: int, action: ImageAnnotationToolAction, payload: dict): """ """ data = { ApiField.SESSION_ID: session_id, ApiField.ACTION: str(action), ApiField.PAYLOAD: payload, } resp = self._api.post("/annotation-tool.run-action", data) return resp.json()
# { # "sessionId": "940c4ec7-3818-420b-9277-ab3c820babe5", # "action": "scene/setViewport", # "payload": { # "viewport": { # "offsetX": -461, # width # "offsetY": -1228, # height # "zoom": 1.7424000000000024 # } # } # } # { # "sessionId": "940c4ec7-3818-420b-9277-ab3c820babe5", # "action": "scene/zoomToObject", # "payload": { # "figureId": 22129, # "zoomFactor": 1.5 # } # }