Exemplo n.º 1
0
    def setUp(self):
        """Setup the test.
        """
        import os
        import tempfile
        one_channel = np.random.rand(random.randint(1, 10),
                                     random.randint(1, 10))
        self.rand_img = image.Image(channels=[one_channel] * 3, mode="RGB")
        self.rand_img2 = image.Image(channels=[one_channel] * 3,
                                     mode="RGB",
                                     fill_value=(0, 0, 0))

        two_channel = np.array([[0, 0.5, 0.5], [0.5, 0.25, 0.25]])
        self.img = image.Image(channels=[two_channel] * 3, mode="RGB")

        self.flat_channel = [[1, 1, 1], [1, 1, 1]]
        self.flat_img = image.Image(channels=[self.flat_channel],
                                    mode="L",
                                    fill_value=0)

        self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"]
        self.modes_len = [1, 2, 3, 4, 3, 4, 1, 2]

        # create an unusable directory for permission error checking

        self.tempdir = tempfile.mkdtemp()
        os.chmod(self.tempdir, 0000)
Exemplo n.º 2
0
 def test_merge(self):
     """Merging of an empty image with another.
     """
     newimg = image.Image()
     self.assertRaises(ValueError, self.img.merge, newimg)
     newimg = image.Image(np.array([[1, 2], [3, 4]]))
     self.assertRaises(ValueError, self.img.merge, newimg)
     newimg = image.Image(np.array([[1, 2, 3, 4]]))
     self.assertRaises(ValueError, self.img.merge, newimg)
Exemplo n.º 3
0
 def test_merge(self):
     """Merging of an image with another.
     """
     newimg = image.Image()
     self.assertRaises(ValueError, self.img.merge, newimg)
     newimg = image.Image(np.array([[1, 2], [3, 4]]))
     self.assertRaises(ValueError, self.img.merge, newimg)
     newimg = image.Image(np.array([[1, 2, 3, 4]]))
     self.assertRaises(ValueError, self.img.merge, newimg)
     newimg = image.Image(np.ma.array([[1, 2, 3], [4, 5, 6]],
                                      mask=[[1, 0, 0], [1, 1, 0]]),
                          mode="L")
     self.img.convert("L")
     newimg.merge(self.img)
     self.assert_(
         np.all(
             np.abs(newimg.channels[0] -
                    np.array([[0, 2, 3], [0.5, 0.25, 6]])) < EPSILON))
Exemplo n.º 4
0
 def setUp(self):
     channel = np.ma.array([[0, 0.5, 0.5], [0.5, 0.25, 0.25]],
                           mask=[[1, 1, 1], [1, 1, 1]])
     self.img = image.Image(channels=[channel] * 3, mode="RGB")
     self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"]
Exemplo n.º 5
0
 def setUp(self):
     """Setup the test.
     """
     self.img = image.Image()
     self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"]
Exemplo n.º 6
0
    def test_creation(self):
        """Creation of an image.
        """

        self.assertRaises(TypeError,
                          image.Image,
                          channels=random.randint(1, 1000))
        self.assertRaises(TypeError, image.Image, channels=random.random())
        self.assertRaises(TypeError,
                          image.Image,
                          channels=random_string(random.randint(1, 10)))

        chs = [
            np.random.rand(random.randint(1, 10), random.randint(1, 10)),
            np.random.rand(random.randint(1, 10), random.randint(1, 10)),
            np.random.rand(random.randint(1, 10), random.randint(1, 10)),
            np.random.rand(random.randint(1, 10), random.randint(1, 10))
        ]

        self.assertRaises(ValueError, image.Image, channels=chs)

        one_channel = np.random.rand(random.randint(1, 10),
                                     random.randint(1, 10))

        i = 0

        for mode in self.modes:
            # Empty image, no channels
            self.img[mode] = image.Image(mode=mode)
            self.assertEqual(self.img[mode].channels, [])

            # Empty image, no channels, fill value

            self.img[mode] = image.Image(mode=mode, fill_value=0)
            self.assertEqual(self.img[mode].channels, [])

            # Empty image, no channels, fill value, wrong color_range

            self.assertRaises(ValueError,
                              image.Image,
                              mode=mode,
                              fill_value=0,
                              color_range=((0, (1, 2))))

            self.assertRaises(ValueError,
                              image.Image,
                              mode=mode,
                              fill_value=0,
                              color_range=((0, 0), (1, 2), (0, 0), (1, 2),
                                           (0, 0), (1, 2)))

            # Regular image, too many channels

            self.assertRaises(ValueError,
                              image.Image,
                              channels=([one_channel] *
                                        (self.modes_len[i] + 1)),
                              mode=mode)

            # Regular image, not enough channels

            self.assertRaises(ValueError,
                              image.Image,
                              channels=([one_channel] *
                                        (self.modes_len[i] - 1)),
                              mode=mode)

            # Regular image, channels

            self.img[mode] = image.Image(channels=([one_channel] *
                                                   (self.modes_len[i])),
                                         mode=mode)

            for nb_chan in range(self.modes_len[i]):
                self.assert_(
                    np.all(self.img[mode].channels[nb_chan] == one_channel))
                self.assert_(
                    isinstance(self.img[mode].channels[nb_chan],
                               np.ma.core.MaskedArray))

            i = i + 1