diff --git a/skimage/novice/_novice.py b/skimage/novice/_novice.py index dafad67d..a1a0e6f4 100644 --- a/skimage/novice/_novice.py +++ b/skimage/novice/_novice.py @@ -95,12 +95,7 @@ class Pixel(object): @rgb.setter def rgb(self, value): - for v in value: - self._validate(v) - - self._red = value[0] - self._green = value[1] - self._blue = value[2] + self._red, self._green, self._blue = (self._validate(v) for v in value) self._setpixel() def _validate(self, value): diff --git a/skimage/novice/tests/test_novice.py b/skimage/novice/tests/test_novice.py index 73aba8e8..ddbe3f1c 100644 --- a/skimage/novice/tests/test_novice.py +++ b/skimage/novice/tests/test_novice.py @@ -70,6 +70,12 @@ def test_pixel_rgb(): assert_equal(channel, i + 3) +def test_pixel_rgb_float(): + pixel = novice.Picture(size=(1, 1))[0, 0] + pixel.rgb = (1.1, 1.1, 1.1) + assert_equal(pixel.rgb, (1, 1, 1)) + + @raises(ValueError) def test_pixel_rgb_raises(): pixel = novice.Picture(size=(1, 1))[0, 0]