예제 #1
0
    def test_polygons_to_masks(self):
        source_dataset = Dataset.from_iterable([
            DatasetItem(id=1,
                        image=np.zeros((5, 10, 3)),
                        annotations=[
                            Polygon([0, 0, 4, 0, 4, 4]),
                            Polygon([5, 0, 9, 0, 5, 5]),
                        ]),
        ])

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

        actual = transforms.PolygonsToMasks(source_dataset)
        compare_datasets(self, target_dataset, actual)
예제 #2
0
    def test_polygons_to_masks(self):
        class SrcExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1,
                                image=np.zeros((5, 10, 3)),
                                annotations=[
                                    Polygon([0, 0, 4, 0, 4, 4]),
                                    Polygon([5, 0, 9, 0, 5, 5]),
                                ]),
                ])

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

        actual = transforms.PolygonsToMasks(SrcExtractor())
        compare_datasets(self, DstExtractor(), actual)