def test_invalid_conversions(self):
        """
        Make sure invalid conversions raise an error
        """
        bbox_model = ProjectScene.load(TEST_PATH, "bounding_box_sample")
        self.assertRaises(ValueError,
                          ProjectConverter().run,
                          project=bbox_model,
                          target_type="voxels")

        self.assertRaises(ValueError,
                          ProjectConverter().run,
                          project=bbox_model,
                          target_type="meshes")
    def test_meshes_to_voxels(self):
        """
        Conversion from meshes to voxels.  Test number of elements
        and project_type.  Does not test contents for accuracy.
        """

        meshes_model = ProjectScene.load(TEST_PATH, "meshes_sample")
        voxel_model = ProjectConverter().run(meshes_model, "voxels")

        self.assertEqual(voxel_model.project_type, "voxels")
        self.assertEqual(len(voxel_model.elements), len(meshes_model.elements))
        for element in voxel_model.elements.values():
            self.assertTrue(hasattr(element, "voxels"))
    def test_voxel_to_bbox(self):
        """
        Conversion from voxel to bbox.  Test number of elements
        and project_type.  Does not test contents for accuracy.
        """

        voxels_model = ProjectScene.load(TEST_PATH, "voxels_sample")
        bbox_model = ProjectConverter().run(voxels_model, "bounding_box")

        self.assertEqual(bbox_model.project_type, "bounding_box")
        self.assertEqual(len(bbox_model.elements), len(voxels_model.elements))
        for element in bbox_model.elements.values():
            self.assertTrue(hasattr(element, "bounds"))
예제 #4
0
from sumo.geometry.rot3 import Rot3, ENU_R_CAMERA
import numpy as np
wRc = np.transpose(np.array([[1, 0, 0], [0, 0, -1], [0, 1, 0]], dtype=float))
rot = Rot3(wRc)
print(rot.matrix())

# MultiImageTiff
from sumo.geometry.inverse_depth import depth_image_of_inverse_depth_map
from sumo.images.multi_image_tiff import MultiImageTiff, MultiImagePageType

tiff_path = parutil.get_file_path(
    '/mnt/lustre/sunjiankai/Dataset/sample_data/sumo-input/sumo-input.tif')
multi = MultiImageTiff.load(tiff_path)
print('multi.rgb.shape: ', multi.rgb.shape, 'multi.range.shape (Depth): ',
      multi.range.shape, 'multi.category.shape (Category): ',
      multi.category.shape, 'multi.instance.shape (Instance): ',
      multi.instance.shape)
# multi.rgb.shape:  (1024, 6144, 3) multi.range.shape:  (1024, 6144) multi.category.shape:  (1024, 6144) multi.instance.shape:  (1024, 6144)

from sumo.semantic.project_converter import ProjectConverter
from sumo.semantic.project_scene import ProjectScene

glb_path = parutil.get_file_path(
    '/mnt/lustre/sunjiankai/Dataset/sample_data/sumo-output')
meshes_model = ProjectScene.load(glb_path, "bounding_box_sample")
bbox_model = ProjectConverter().run(meshes_model, "bounding_box")
print('bbox_model.elements[\'1087\'].bounds.corners():\n',
      bbox_model.elements['1087'].bounds.corners())
print('bbox_model.elements[\'1087\'].pose.t',
      bbox_model.elements['1087'].pose.t)