Source code for supervisely.pointcloud_annotation.pointcloud_object_collection
# coding: utf-8
from __future__ import annotations
from typing import Dict, Iterator, List, Optional
from supervisely.pointcloud_annotation.pointcloud_object import PointcloudObject
from supervisely.project.project_meta import ProjectMeta
from supervisely.video_annotation.key_id_map import KeyIdMap
from supervisely.video_annotation.video_object_collection import VideoObjectCollection
[docs]
class PointcloudObjectCollection(VideoObjectCollection):
"""
Collection with :class:`~supervisely.pointcloud_annotation.pointcloud_object.PointcloudObject` instances.
:class:`~supervisely.pointcloud_annotation.pointcloud_object_collection.PointcloudObjectCollection` object is immutable.
"""
item_type = PointcloudObject
def __iter__(self) -> Iterator[PointcloudObject]:
return next(self)
[docs]
@classmethod
def from_json(
cls, data: List[Dict], project_meta: ProjectMeta, key_id_map: Optional[KeyIdMap] = None
) -> PointcloudObjectCollection:
"""
Convert a list of json dicts to PointcloudObjectCollection. Read more about `Supervisely format <https://docs.supervisely.com/data-organization/00_ann_format_navi>`_.
:param data: List with dicts in json format.
:type data: List[dict]
:param project_meta: Input project metadata.
:type project_meta: :class:`~supervisely.project.project_meta.ProjectMeta`
:param key_id_map: Key ID map.
:type key_id_map: :class:`~supervisely.video_annotation.key_id_map.KeyIdMap`
:returns: Pointcloud object collection.
:rtype: :class:`~supervisely.pointcloud_annotation.pointcloud_object_collection.PointcloudObjectCollection`
:Usage Example:
.. code-block:: python
import supervisely as sly
from supervisely.geometry.cuboid_3d import Cuboid3d
from supervisely.pointcloud_annotation.pointcloud_object_collection import PointcloudObjectCollection
obj_collection_json = [
{"classTitle": "car", "tags": []},
{"classTitle": "bus", "tags": []}
]
class_car = sly.ObjClass('car', Cuboid3d)
class_bus = sly.ObjClass('bus', Cuboid3d)
classes = sly.ObjClassCollection([class_car, class_bus])
meta = sly.ProjectMeta(obj_classes=classes)
pointcloud_obj_collection = sly.PointcloudObjectCollection.from_json(obj_collection_json, meta)
"""
return super().from_json(data, project_meta, key_id_map=key_id_map)