Source code for tomni.transformers.contours2json.main

import uuid
import numpy as np
from typing import List, Union


[docs]def contours2json(contours: Union[np.ndarray, List[list]]) -> List[dict]: """ Convert a list or array of contours into a list of JSON objects in standard AxionBio format. Args: contours (numpy.ndarray or list): Contours produced by OpenCV, represented as a NumPy array or a list. Returns: List[dict]: A list of JSON objects, where each JSON object represents a contour as a polygon. """ result = [] for contour in contours: shape = {"type": "polygon", "points": []} for point in contour: shape["points"].append(dict(x=int(point[0][0]), y=int(point[0][1]))) shape["id"] = str(uuid.uuid4()) shape["parents"] = [] shape["children"] = [] result.append(shape) return result