Esempio n. 1
0
    def scales(self):
        """Get the scales of each coefficient.

        Returns
        -------
        scales : ``range`` element
            The scale of each coefficient, given by an integer. 0 for the
            lowest resolution and self.nlevels for the highest.
        """
        if self.impl == 'pywt':
            if self.__variant == 'forward':
                discr_space = self.domain
                wavelet_space = self.range
            else:
                discr_space = self.range
                wavelet_space = self.domain

            shapes = pywt_coeff_shapes(discr_space.shape, self.pywt_wavelet,
                                       self.nlevels, self.pywt_pad_mode)
            coeff_list = [np.ones(shapes[0]) * 0]
            dcoeffs_per_scale = 2**discr_space.ndim - 1
            for i in range(1, 1 + len(shapes[1:])):
                coeff_list.append(
                    (np.ones(shapes[i]) * i, ) * dcoeffs_per_scale)
            coeffs = pywt_flat_array_from_coeffs(coeff_list)
            return wavelet_space.element(coeffs)
        else:
            raise RuntimeError("bad `impl` '{}'".format(self.impl))
Esempio n. 2
0
    def scales(self):
        """Get the scales of each coefficient.

        Returns
        -------
        scales : ``range`` element
            The scale of each coefficient, given by an integer. 0 for the
            lowest resolution and self.nlevels for the highest.
        """
        if self.impl == 'pywt':
            if self.__variant == 'forward':
                discr_space = self.domain
                wavelet_space = self.range
            else:
                discr_space = self.range
                wavelet_space = self.domain

            shapes = pywt_coeff_shapes(discr_space.shape, self.pywt_wavelet,
                                       self.nlevels, self.pywt_pad_mode)
            coeff_list = [np.ones(shapes[0]) * 0]
            dcoeffs_per_scale = 2 ** discr_space.ndim - 1
            for i in range(1, 1 + len(shapes[1:])):
                coeff_list.append(
                    (np.ones(shapes[i]) * i,) * dcoeffs_per_scale)
            coeffs = pywt_flat_array_from_coeffs(coeff_list)
            return wavelet_space.element(coeffs)
        else:
            raise RuntimeError("bad `impl` '{}'".format(self.impl))
Esempio n. 3
0
 def _call(self, x):
     """Return wavelet transform of ``x``."""
     if self.impl == 'pywt':
         coeff_list = pywt_multi_level_decomp(
             x, wavelet=self.pywt_wavelet, nlevels=self.nlevels,
             mode=self.pywt_pad_mode)
         return pywt_flat_array_from_coeffs(coeff_list)
     else:
         raise RuntimeError("bad `impl` '{}'".format(self.impl))
Esempio n. 4
0
 def _call(self, x):
     """Return wavelet transform of ``x``."""
     if self.impl == 'pywt':
         coeff_list = pywt_multi_level_decomp(
             x, wavelet=self.pywt_wavelet, nlevels=self.nlevels,
             mode=self.pywt_pad_mode)
         return pywt_flat_array_from_coeffs(coeff_list)
     else:
         raise RuntimeError("bad `impl` '{}'".format(self.impl))
Esempio n. 5
0
def test_pywt_coeff_list_conversion(small_shapes, floating_dtype):
    """Test if converstion flat array <-> coefficient list works."""
    ndim, shapes = small_shapes

    grouped_list, flat_list = _grouped_and_flat_arrays(shapes, dtype=float)

    true_flat_array = np.hstack(flat_list)
    flat_array = pywt_flat_array_from_coeffs(grouped_list)
    assert all_equal(flat_array, true_flat_array)

    coeff_list = pywt_coeffs_from_flat_array(flat_array, shapes)
    true_coeff_list = grouped_list
    assert all_equal(coeff_list, true_coeff_list)
Esempio n. 6
0
def test_pywt_coeff_list_conversion(small_shapes, floating_dtype):
    """Test if converstion flat array <-> coefficient list works."""
    ndim, shapes = small_shapes

    grouped_list, flat_list = _grouped_and_flat_arrays(shapes, dtype=float)

    true_flat_array = np.hstack(flat_list)
    flat_array = pywt_flat_array_from_coeffs(grouped_list)
    assert all_equal(flat_array, true_flat_array)

    coeff_list = pywt_coeffs_from_flat_array(flat_array, shapes)
    true_coeff_list = grouped_list
    assert all_equal(coeff_list, true_coeff_list)