示例#1
0
 def test_uncrop_too_small_requested_shape(self,
                                           small_cont_1c: ImageContainer):
     crops = list(small_cont_1c.generate_equal_crops(size=13))
     with pytest.raises(ValueError, match=r"Requested final image shape"):
         ImageContainer.uncrop(crops,
                               shape=(small_cont_1c.shape[0] - 1,
                                      small_cont_1c.shape[1] - 1))
示例#2
0
 def test_equal_crops_as_array(self, small_cont: ImageContainer,
                               as_array: bool):
     small_cont.add_img(np.random.normal(size=(small_cont.shape + (1, ))),
                        channel_dim="foobar",
                        layer="baz")
     for crop in small_cont.generate_equal_crops(size=11,
                                                 as_array=as_array):
         if as_array:
             if isinstance(as_array, bool):
                 assert isinstance(crop, dict)
                 for key in small_cont:
                     assert key in crop
                     assert crop[key].shape == (
                         11, 11, small_cont[key].data.shape[-1])
             elif isinstance(as_array, str):
                 assert isinstance(crop, np.ndarray)
                 assert crop.shape == (11, 11,
                                       small_cont[as_array].data.shape[-1])
             else:
                 assert isinstance(crop, tuple)
                 assert len(crop) == len(as_array)
                 for key, data in zip(as_array, crop):
                     assert isinstance(data, np.ndarray)
                     assert data.shape == (11, 11,
                                           small_cont[key].data.shape[-1])
         else:
             assert isinstance(crop, ImageContainer)
             for key in (Key.img.coords, Key.img.padding, Key.img.scale,
                         Key.img.mask_circle):
                 assert key in crop.data.attrs, key
             assert crop.shape == (11, 11)
示例#3
0
    def test_uncrop_preserves_shape(self, small_cont_1c: ImageContainer):
        small_cont_1c.add_img(np.random.normal(size=(small_cont_1c.shape +
                                                     (4, ))),
                              channel_dim="foobar",
                              layer="baz")
        crops = list(small_cont_1c.generate_equal_crops(size=13))

        uncrop = ImageContainer.uncrop(crops)

        np.testing.assert_array_equal(small_cont_1c.shape, uncrop.shape)
        for key in small_cont_1c:
            np.testing.assert_array_equal(uncrop[key], small_cont_1c[key])