Source code for supervisely.pointcloud_annotation.pointcloud_object_collection
# coding: utf-8
from __future__ import annotations
from typing import List, Dict, Optional, Iterator
from supervisely.video_annotation.video_object_collection import VideoObjectCollection
from supervisely.pointcloud_annotation.pointcloud_object import PointcloudObject
from supervisely.project.project_meta import ProjectMeta
from supervisely.video_annotation.key_id_map import KeyIdMap
[docs]class PointcloudObjectCollection(VideoObjectCollection):
'''
Collection with :class:`PointcloudObject<supervisely.pointcloud_annotation.pointcloud_object.PointcloudObject>` instances.
:class:`PointcloudObjectCollection<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.supervise.ly/data-organization/00_ann_format_navi>`_.
:param data: List with dicts in json format.
:type data: List[dict]
:param project_meta: Input :class:`ProjectMeta<supervisely.project.project_meta.ProjectMeta>`.
:type project_meta: ProjectMeta
:param key_id_map: KeyIdMap object.
:type key_id_map: KeyIdMap, optional
:return: PointcloudObjectCollection object
:rtype: :class:`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)