Ejemplo n.º 1
0
    def test_merge_instance_segments(self):
        source_dataset = Dataset.from_iterable([
            DatasetItem(id=1, image=np.zeros((5, 5, 3)),
                annotations=[
                    Mask(np.array([
                            [0, 0, 1, 1, 1],
                            [0, 0, 0, 0, 1],
                            [1, 0, 0, 0, 1],
                            [1, 0, 0, 0, 0],
                            [1, 1, 1, 0, 0]],
                        ),
                        z_order=0, group=1),
                    Polygon([1, 1, 4, 1, 4, 4, 1, 4],
                        z_order=1, group=1),
                    Polygon([0, 0, 0, 2, 2, 2, 2, 0],
                        z_order=1),
                ]
            ),
        ])

        target_dataset = Dataset.from_iterable([
            DatasetItem(id=1, image=np.zeros((5, 5, 3)),
                annotations=[
                    Mask(np.array([
                            [0, 0, 1, 1, 1],
                            [0, 1, 1, 1, 1],
                            [1, 1, 1, 1, 1],
                            [1, 1, 1, 1, 0],
                            [1, 1, 1, 0, 0]],
                        ),
                        z_order=0, group=1),
                    Mask(np.array([
                            [1, 1, 0, 0, 0],
                            [1, 1, 0, 0, 0],
                            [0, 0, 0, 0, 0],
                            [0, 0, 0, 0, 0],
                            [0, 0, 0, 0, 0]],
                        ),
                        z_order=1),
                ]
            ),
        ])

        actual = transforms.MergeInstanceSegments(source_dataset,
            include_polygons=True)
        compare_datasets(self, target_dataset, actual)
Ejemplo n.º 2
0
    def test_merge_instance_segments(self):
        class SrcExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1,
                                image=np.zeros((5, 5, 3)),
                                annotations=[
                                    Mask(np.array(
                                        [[0, 0, 1, 1, 1], [0, 0, 0, 0, 1],
                                         [1, 0, 0, 0, 1], [1, 0, 0, 0, 0],
                                         [1, 1, 1, 0, 0]], ),
                                         z_order=0,
                                         group=1),
                                    Polygon([1, 1, 4, 1, 4, 4, 1, 4],
                                            z_order=1,
                                            group=1),
                                    Polygon([0, 0, 0, 2, 2, 2, 2, 0],
                                            z_order=1),
                                ]),
                ])

        class DstExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(
                        id=1,
                        image=np.zeros((5, 5, 3)),
                        annotations=[
                            Mask(np.array([[0, 0, 1, 1, 1], [0, 1, 1, 1, 1],
                                           [1, 1, 1, 1, 1], [1, 1, 1, 1, 0],
                                           [1, 1, 1, 0, 0]], ),
                                 z_order=0,
                                 group=1),
                            Mask(np.array([[1, 1, 0, 0, 0], [1, 1, 0, 0, 0],
                                           [0, 0, 0, 0, 0], [0, 0, 0, 0, 0],
                                           [0, 0, 0, 0, 0]], ),
                                 z_order=1),
                        ]),
                ])

        actual = transforms.MergeInstanceSegments(SrcExtractor(),
                                                  include_polygons=True)
        compare_datasets(self, DstExtractor(), actual)