Example #1
0
    def test_write_LUT_SonySPI3D(self):
        """
        Tests :func:`colour.io.luts.sony_spi3d.write_LUT_SonySPI3D` definition.
        """

        LUT_r = read_LUT_SonySPI3D(
            os.path.join(LUTS_DIRECTORY, 'Colour_Correct.spi3d'))

        write_LUT_SonySPI3D(
            LUT_r,
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        LUT_t = read_LUT_SonySPI3D(
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        self.assertEqual(LUT_r, LUT_t)

        write_LUT_SonySPI3D(
            LUTSequence(LUT_r),
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        self.assertEqual(LUT_r, LUT_t)
Example #2
0
    def test_write_LUT_SonySPI3D(self):
        """
        Tests :func:`colour.io.luts.sony_spi3d.write_LUT_SonySPI3D` definition.
        """

        LUT_r = read_LUT_SonySPI3D(
            os.path.join(LUTS_DIRECTORY, 'ColourCorrect.spi3d'))

        write_LUT_SonySPI3D(
            LUT_r,
            os.path.join(self._temporary_directory, 'ColourCorrect.spi3d'))

        LUT_t = read_LUT_SonySPI3D(
            os.path.join(self._temporary_directory, 'ColourCorrect.spi3d'))

        self.assertEqual(LUT_r, LUT_t)

        write_LUT_SonySPI3D(
            LUTSequence(LUT_r),
            os.path.join(self._temporary_directory, 'ColourCorrect.spi3d'))

        self.assertEqual(LUT_r, LUT_t)
Example #3
0
    def test_read_LUT_SonySPI3D(self):
        """
        Tests :func:`colour.io.luts.sony_spi3d.read_LUT_SonySPI3D` definition.
        """

        LUT = read_LUT_SonySPI3D(
            os.path.join(LUTS_DIRECTORY, 'ColourCorrect.spi3d'))

        np.testing.assert_almost_equal(
            LUT.table,
            np.array([
                [
                    [
                        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
                        [0.00000000e+00, 0.00000000e+00, 4.16653000e-01],
                        [0.00000000e+00, 0.00000000e+00, 8.33306000e-01],
                        [1.00000000e-06, 1.00000000e-06, 1.24995900e+00],
                    ],
                    [
                        [-2.62310000e-02, 3.77102000e-01, -2.62310000e-02],
                        [1.96860000e-02, 2.44702000e-01, 2.44702000e-01],
                        [1.43270000e-02, 3.30993000e-01, 6.47660000e-01],
                        [9.02200000e-03, 3.72791000e-01, 1.10033100e+00],
                    ],
                    [
                        [-5.24630000e-02, 7.54204000e-01, -5.24630000e-02],
                        [0.00000000e+00, 6.16667000e-01, 3.08333000e-01],
                        [3.93720000e-02, 4.89403000e-01, 4.89403000e-01],
                        [3.57730000e-02, 5.78763000e-01, 8.50258000e-01],
                    ],
                    [
                        [-7.86940000e-02, 1.13130600e+00, -7.86940000e-02],
                        [-3.59270000e-02, 1.02190800e+00, 3.16685000e-01],
                        [3.09040000e-02, 8.31171000e-01, 5.64415000e-01],
                        [5.90590000e-02, 7.34105000e-01, 7.34105000e-01],
                    ],
                ],
                [
                    [
                        [3.98947000e-01, -1.77060000e-02, -1.77060000e-02],
                        [3.33333000e-01, 0.00000000e+00, 3.33333000e-01],
                        [3.90623000e-01, 0.00000000e+00, 7.81246000e-01],
                        [4.04320000e-01, 0.00000000e+00, 1.21296000e+00],
                    ],
                    [
                        [2.94597000e-01, 2.94597000e-01, 6.95820000e-02],
                        [4.16655000e-01, 4.16655000e-01, 4.16655000e-01],
                        [4.16655000e-01, 4.16655000e-01, 8.33308000e-01],
                        [4.16656000e-01, 4.16656000e-01, 1.24996100e+00],
                    ],
                    [
                        [3.49416000e-01, 6.57749000e-01, 4.10830000e-02],
                        [3.40435000e-01, 7.43769000e-01, 3.40435000e-01],
                        [2.69700000e-01, 4.94715000e-01, 4.94715000e-01],
                        [3.47660000e-01, 6.64327000e-01, 9.80993000e-01],
                    ],
                    [
                        [3.44991000e-01, 1.05021300e+00, -7.62100000e-03],
                        [3.14204000e-01, 1.12087100e+00, 3.14204000e-01],
                        [3.08333000e-01, 9.25000000e-01, 6.16667000e-01],
                        [2.89386000e-01, 7.39417000e-01, 7.39417000e-01],
                    ],
                ],
                [
                    [
                        [7.97894000e-01, -3.54120000e-02, -3.54120000e-02],
                        [7.52767000e-01, -2.84790000e-02, 3.62144000e-01],
                        [6.66667000e-01, 0.00000000e+00, 6.66667000e-01],
                        [7.46911000e-01, 0.00000000e+00, 1.12036600e+00],
                    ],
                    [
                        [6.33333000e-01, 3.16667000e-01, 0.00000000e+00],
                        [7.32278000e-01, 3.15626000e-01, 3.15626000e-01],
                        [6.66667000e-01, 3.33333000e-01, 6.66667000e-01],
                        [7.81246000e-01, 3.90623000e-01, 1.17186900e+00],
                    ],
                    [
                        [5.89195000e-01, 5.89195000e-01, 1.39164000e-01],
                        [5.94601000e-01, 5.94601000e-01, 3.69586000e-01],
                        [8.33311000e-01, 8.33311000e-01, 8.33311000e-01],
                        [8.33311000e-01, 8.33311000e-01, 1.24996300e+00],
                    ],
                    [
                        [6.63432000e-01, 9.30188000e-01, 1.29920000e-01],
                        [6.82749000e-01, 9.91082000e-01, 3.74416000e-01],
                        [7.07102000e-01, 1.11043500e+00, 7.07102000e-01],
                        [5.19714000e-01, 7.44729000e-01, 7.44729000e-01],
                    ],
                ],
                [
                    [
                        [1.19684100e+00, -5.31170000e-02, -5.31170000e-02],
                        [1.16258800e+00, -5.03720000e-02, 3.53948000e-01],
                        [1.08900300e+00, -3.13630000e-02, 7.15547000e-01],
                        [1.00000000e+00, 0.00000000e+00, 1.00000000e+00],
                    ],
                    [
                        [1.03843900e+00, 3.10899000e-01, -5.28700000e-02],
                        [1.13122500e+00, 2.97920000e-01, 2.97920000e-01],
                        [1.08610100e+00, 3.04855000e-01, 6.95478000e-01],
                        [1.00000000e+00, 3.33333000e-01, 1.00000000e+00],
                    ],
                    [
                        [8.91318000e-01, 6.19823000e-01, 7.68330000e-02],
                        [9.50000000e-01, 6.33333000e-01, 3.16667000e-01],
                        [1.06561000e+00, 6.48957000e-01, 6.48957000e-01],
                        [1.00000000e+00, 6.66667000e-01, 1.00000000e+00],
                    ],
                    [
                        [8.83792000e-01, 8.83792000e-01, 2.08746000e-01],
                        [8.89199000e-01, 8.89199000e-01, 4.39168000e-01],
                        [8.94606000e-01, 8.94606000e-01, 6.69590000e-01],
                        [1.24996600e+00, 1.24996600e+00, 1.24996600e+00],
                    ],
                ],
            ]))
        self.assertEqual(LUT.name, 'ColourCorrect')
        self.assertEqual(LUT.dimensions, 3)
        np.testing.assert_array_equal(LUT.domain,
                                      np.array([[0, 0, 0], [1, 1, 1]]))
        self.assertEqual(LUT.size, 4)
        self.assertListEqual(LUT.comments,
                             ['Adapted from a LUT generated by Foundry::LUT.'])
Example #4
0
    def test_read_LUT_SonySPI3D(self):
        """
        Tests :func:`colour.io.luts.sony_spi3d.read_LUT_SonySPI3D` definition.
        """

        LUT = read_LUT_SonySPI3D(
            os.path.join(LUTS_DIRECTORY, 'ColourCorrect.spi3d'))

        np.testing.assert_almost_equal(
            LUT.table,
            np.array([
                [
                    [
                        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
                        [0.00000000e+00, 0.00000000e+00, 4.16653000e-01],
                        [0.00000000e+00, 0.00000000e+00, 8.33306000e-01],
                        [1.00000000e-06, 1.00000000e-06, 1.24995900e+00],
                    ],
                    [
                        [-2.62310000e-02, 3.77102000e-01, -2.62310000e-02],
                        [1.96860000e-02, 2.44702000e-01, 2.44702000e-01],
                        [1.43270000e-02, 3.30993000e-01, 6.47660000e-01],
                        [9.02200000e-03, 3.72791000e-01, 1.10033100e+00],
                    ],
                    [
                        [-5.24630000e-02, 7.54204000e-01, -5.24630000e-02],
                        [0.00000000e+00, 6.16667000e-01, 3.08333000e-01],
                        [3.93720000e-02, 4.89403000e-01, 4.89403000e-01],
                        [3.57730000e-02, 5.78763000e-01, 8.50258000e-01],
                    ],
                    [
                        [-7.86940000e-02, 1.13130600e+00, -7.86940000e-02],
                        [-3.59270000e-02, 1.02190800e+00, 3.16685000e-01],
                        [3.09040000e-02, 8.31171000e-01, 5.64415000e-01],
                        [5.90590000e-02, 7.34105000e-01, 7.34105000e-01],
                    ],
                ],
                [
                    [
                        [3.98947000e-01, -1.77060000e-02, -1.77060000e-02],
                        [3.33333000e-01, 0.00000000e+00, 3.33333000e-01],
                        [3.90623000e-01, 0.00000000e+00, 7.81246000e-01],
                        [4.04320000e-01, 0.00000000e+00, 1.21296000e+00],
                    ],
                    [
                        [2.94597000e-01, 2.94597000e-01, 6.95820000e-02],
                        [4.16655000e-01, 4.16655000e-01, 4.16655000e-01],
                        [4.16655000e-01, 4.16655000e-01, 8.33308000e-01],
                        [4.16656000e-01, 4.16656000e-01, 1.24996100e+00],
                    ],
                    [
                        [3.49416000e-01, 6.57749000e-01, 4.10830000e-02],
                        [3.40435000e-01, 7.43769000e-01, 3.40435000e-01],
                        [2.69700000e-01, 4.94715000e-01, 4.94715000e-01],
                        [3.47660000e-01, 6.64327000e-01, 9.80993000e-01],
                    ],
                    [
                        [3.44991000e-01, 1.05021300e+00, -7.62100000e-03],
                        [3.14204000e-01, 1.12087100e+00, 3.14204000e-01],
                        [3.08333000e-01, 9.25000000e-01, 6.16667000e-01],
                        [2.89386000e-01, 7.39417000e-01, 7.39417000e-01],
                    ],
                ],
                [
                    [
                        [7.97894000e-01, -3.54120000e-02, -3.54120000e-02],
                        [7.52767000e-01, -2.84790000e-02, 3.62144000e-01],
                        [6.66667000e-01, 0.00000000e+00, 6.66667000e-01],
                        [7.46911000e-01, 0.00000000e+00, 1.12036600e+00],
                    ],
                    [
                        [6.33333000e-01, 3.16667000e-01, 0.00000000e+00],
                        [7.32278000e-01, 3.15626000e-01, 3.15626000e-01],
                        [6.66667000e-01, 3.33333000e-01, 6.66667000e-01],
                        [7.81246000e-01, 3.90623000e-01, 1.17186900e+00],
                    ],
                    [
                        [5.89195000e-01, 5.89195000e-01, 1.39164000e-01],
                        [5.94601000e-01, 5.94601000e-01, 3.69586000e-01],
                        [8.33311000e-01, 8.33311000e-01, 8.33311000e-01],
                        [8.33311000e-01, 8.33311000e-01, 1.24996300e+00],
                    ],
                    [
                        [6.63432000e-01, 9.30188000e-01, 1.29920000e-01],
                        [6.82749000e-01, 9.91082000e-01, 3.74416000e-01],
                        [7.07102000e-01, 1.11043500e+00, 7.07102000e-01],
                        [5.19714000e-01, 7.44729000e-01, 7.44729000e-01],
                    ],
                ],
                [
                    [
                        [1.19684100e+00, -5.31170000e-02, -5.31170000e-02],
                        [1.16258800e+00, -5.03720000e-02, 3.53948000e-01],
                        [1.08900300e+00, -3.13630000e-02, 7.15547000e-01],
                        [1.00000000e+00, 0.00000000e+00, 1.00000000e+00],
                    ],
                    [
                        [1.03843900e+00, 3.10899000e-01, -5.28700000e-02],
                        [1.13122500e+00, 2.97920000e-01, 2.97920000e-01],
                        [1.08610100e+00, 3.04855000e-01, 6.95478000e-01],
                        [1.00000000e+00, 3.33333000e-01, 1.00000000e+00],
                    ],
                    [
                        [8.91318000e-01, 6.19823000e-01, 7.68330000e-02],
                        [9.50000000e-01, 6.33333000e-01, 3.16667000e-01],
                        [1.06561000e+00, 6.48957000e-01, 6.48957000e-01],
                        [1.00000000e+00, 6.66667000e-01, 1.00000000e+00],
                    ],
                    [
                        [8.83792000e-01, 8.83792000e-01, 2.08746000e-01],
                        [8.89199000e-01, 8.89199000e-01, 4.39168000e-01],
                        [8.94606000e-01, 8.94606000e-01, 6.69590000e-01],
                        [1.24996600e+00, 1.24996600e+00, 1.24996600e+00],
                    ],
                ],
            ]))
        self.assertEqual(LUT.name, 'ColourCorrect')
        self.assertEqual(LUT.dimensions, 3)
        np.testing.assert_array_equal(LUT.domain,
                                      np.array([[0, 0, 0], [1, 1, 1]]))
        self.assertEqual(LUT.size, 4)
        self.assertListEqual(LUT.comments,
                             ['Adapted from a LUT generated by Foundry::LUT.'])
Example #5
0
    def test_write_LUT_SonySPI3D(self):
        """
        Tests :func:`colour.io.luts.sony_spi3d.write_LUT_SonySPI3D` definition.
        """

        LUT_r = read_LUT_SonySPI3D(
            os.path.join(LUTS_DIRECTORY, 'Colour_Correct.spi3d'))

        write_LUT_SonySPI3D(
            LUT_r,
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        LUT_t = read_LUT_SonySPI3D(
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        self.assertEqual(LUT_r, LUT_t)

        write_LUT_SonySPI3D(
            LUTSequence(LUT_r),
            os.path.join(self._temporary_directory, 'Colour_Correct.spi3d'))
        self.assertEqual(LUT_r, LUT_t)

        # Test for proper indexes sequentiality.
        path = os.path.join(self._temporary_directory, 'Size_10_Indexes.spi3d')
        write_LUT_SonySPI3D(LUT3D(size=10), path)
        indexes = []

        with open(path) as spi3d_file:
            lines = filter(None,
                           (line.strip() for line in spi3d_file.readlines()))
            for line in lines:
                if line.startswith('#'):
                    continue

                tokens = line.split()
                if len(tokens) == 6:
                    indexes.append(parse_array(tokens[:3], DEFAULT_INT_DTYPE))

        np.testing.assert_array_equal(
            as_int_array(indexes)[:200, ...],
            np.array([
                [0, 0, 0],
                [0, 0, 1],
                [0, 0, 2],
                [0, 0, 3],
                [0, 0, 4],
                [0, 0, 5],
                [0, 0, 6],
                [0, 0, 7],
                [0, 0, 8],
                [0, 0, 9],
                [0, 1, 0],
                [0, 1, 1],
                [0, 1, 2],
                [0, 1, 3],
                [0, 1, 4],
                [0, 1, 5],
                [0, 1, 6],
                [0, 1, 7],
                [0, 1, 8],
                [0, 1, 9],
                [0, 2, 0],
                [0, 2, 1],
                [0, 2, 2],
                [0, 2, 3],
                [0, 2, 4],
                [0, 2, 5],
                [0, 2, 6],
                [0, 2, 7],
                [0, 2, 8],
                [0, 2, 9],
                [0, 3, 0],
                [0, 3, 1],
                [0, 3, 2],
                [0, 3, 3],
                [0, 3, 4],
                [0, 3, 5],
                [0, 3, 6],
                [0, 3, 7],
                [0, 3, 8],
                [0, 3, 9],
                [0, 4, 0],
                [0, 4, 1],
                [0, 4, 2],
                [0, 4, 3],
                [0, 4, 4],
                [0, 4, 5],
                [0, 4, 6],
                [0, 4, 7],
                [0, 4, 8],
                [0, 4, 9],
                [0, 5, 0],
                [0, 5, 1],
                [0, 5, 2],
                [0, 5, 3],
                [0, 5, 4],
                [0, 5, 5],
                [0, 5, 6],
                [0, 5, 7],
                [0, 5, 8],
                [0, 5, 9],
                [0, 6, 0],
                [0, 6, 1],
                [0, 6, 2],
                [0, 6, 3],
                [0, 6, 4],
                [0, 6, 5],
                [0, 6, 6],
                [0, 6, 7],
                [0, 6, 8],
                [0, 6, 9],
                [0, 7, 0],
                [0, 7, 1],
                [0, 7, 2],
                [0, 7, 3],
                [0, 7, 4],
                [0, 7, 5],
                [0, 7, 6],
                [0, 7, 7],
                [0, 7, 8],
                [0, 7, 9],
                [0, 8, 0],
                [0, 8, 1],
                [0, 8, 2],
                [0, 8, 3],
                [0, 8, 4],
                [0, 8, 5],
                [0, 8, 6],
                [0, 8, 7],
                [0, 8, 8],
                [0, 8, 9],
                [0, 9, 0],
                [0, 9, 1],
                [0, 9, 2],
                [0, 9, 3],
                [0, 9, 4],
                [0, 9, 5],
                [0, 9, 6],
                [0, 9, 7],
                [0, 9, 8],
                [0, 9, 9],
                [1, 0, 0],
                [1, 0, 1],
                [1, 0, 2],
                [1, 0, 3],
                [1, 0, 4],
                [1, 0, 5],
                [1, 0, 6],
                [1, 0, 7],
                [1, 0, 8],
                [1, 0, 9],
                [1, 1, 0],
                [1, 1, 1],
                [1, 1, 2],
                [1, 1, 3],
                [1, 1, 4],
                [1, 1, 5],
                [1, 1, 6],
                [1, 1, 7],
                [1, 1, 8],
                [1, 1, 9],
                [1, 2, 0],
                [1, 2, 1],
                [1, 2, 2],
                [1, 2, 3],
                [1, 2, 4],
                [1, 2, 5],
                [1, 2, 6],
                [1, 2, 7],
                [1, 2, 8],
                [1, 2, 9],
                [1, 3, 0],
                [1, 3, 1],
                [1, 3, 2],
                [1, 3, 3],
                [1, 3, 4],
                [1, 3, 5],
                [1, 3, 6],
                [1, 3, 7],
                [1, 3, 8],
                [1, 3, 9],
                [1, 4, 0],
                [1, 4, 1],
                [1, 4, 2],
                [1, 4, 3],
                [1, 4, 4],
                [1, 4, 5],
                [1, 4, 6],
                [1, 4, 7],
                [1, 4, 8],
                [1, 4, 9],
                [1, 5, 0],
                [1, 5, 1],
                [1, 5, 2],
                [1, 5, 3],
                [1, 5, 4],
                [1, 5, 5],
                [1, 5, 6],
                [1, 5, 7],
                [1, 5, 8],
                [1, 5, 9],
                [1, 6, 0],
                [1, 6, 1],
                [1, 6, 2],
                [1, 6, 3],
                [1, 6, 4],
                [1, 6, 5],
                [1, 6, 6],
                [1, 6, 7],
                [1, 6, 8],
                [1, 6, 9],
                [1, 7, 0],
                [1, 7, 1],
                [1, 7, 2],
                [1, 7, 3],
                [1, 7, 4],
                [1, 7, 5],
                [1, 7, 6],
                [1, 7, 7],
                [1, 7, 8],
                [1, 7, 9],
                [1, 8, 0],
                [1, 8, 1],
                [1, 8, 2],
                [1, 8, 3],
                [1, 8, 4],
                [1, 8, 5],
                [1, 8, 6],
                [1, 8, 7],
                [1, 8, 8],
                [1, 8, 9],
                [1, 9, 0],
                [1, 9, 1],
                [1, 9, 2],
                [1, 9, 3],
                [1, 9, 4],
                [1, 9, 5],
                [1, 9, 6],
                [1, 9, 7],
                [1, 9, 8],
                [1, 9, 9],
            ]))