## dwt

dwt — Discrete Wavelet Transform

## Synopsis

    #include <libprocess/gwyprocess.h>

    GwyDataLine*        gwy_dwt_set_coefficients            (GwyDataLine *dline,
                                                             GwyDWTType type);
    void                gwy_data_line_dwt                   (GwyDataLine *dline,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);
    void                gwy_data_field_xdwt                 (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);
    void                gwy_data_field_ydwt                 (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);
    void                gwy_data_field_dwt                  (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);
    void                gwy_data_field_dwt_mark_anisotropy  (GwyDataField *dfield,
                                                             GwyDataField *mask,
                                                             GwyDataLine *wt_coefs,
                                                             gdouble ratio,
                                                             gint lowlimit);

## Description

## Details

### gwy_dwt_set_coefficients ()

    GwyDataLine*        gwy_dwt_set_coefficients            (GwyDataLine *dline,
                                                             GwyDWTType type);

Fills resampled or nely allocated data line with wavelet coefficients.

`dline` : | Data line to store wavelet coefficients to (or `NULL` to allocate a new one).
`type` : | Wavelet type.
Returns : | resampled or newly allocated GwyDataLine with wavelet coefficients.

### gwy_data_line_dwt ()

    void                gwy_data_line_dwt                   (GwyDataLine *dline,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);

Performs steps of the wavelet decomposition.

The smallest low pass coefficients block is equal to `minsize`. Run with `minsize` = `dline->res`/2 to perform one step of decomposition or `minsize` = 4 to perform full decomposition (or anything between).

`dline` : | Data line to be transformed, it must have at least four samples.
`wt_coefs` : | Data line where the wavelet transform coefficients are stored.
`direction` : | Transform direction.
`minsize` : | size of minimal transform result block

### gwy_data_field_xdwt ()

    void                gwy_data_field_xdwt                 (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);

Performs steps of the X-direction image wavelet decomposition.

The smallest low pass coefficients block is equal to `minsize`. Run with `minsize` = `dfield->xres`/2 to perform one step of decomposition or `minsize` = 4 to perform full decomposition (or anything between).

`dfield` : | Data field to be transformed.
`wt_coefs` : | Data line where the wavelet transform coefficients are stored.
`direction` : | Transform direction.
`minsize` : | size of minimal transform result block

### gwy_data_field_ydwt ()

    void                gwy_data_field_ydwt                 (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);

Performs steps of the Y-direction image wavelet decomposition.

The smallest low pass coefficients block is equal to `minsize`. Run with `minsize` = `dfield->yres`/2 to perform one step of decomposition or `minsize` = 4 to perform full decomposition (or anything between).

`dfield` : | Data field to be transformed.
`wt_coefs` : | Data line where the wavelet transform coefficients are stored.
`direction` : | Transform direction.
`minsize` : | size of minimal transform result block

### gwy_data_field_dwt ()

    void                gwy_data_field_dwt                  (GwyDataField *dfield,
                                                             GwyDataLine *wt_coefs,
                                                             GwyTransformDirection direction,
                                                             gint minsize);

Performs steps of the 2D image wavelet decomposition.

The smallest low pass coefficients block is equal to `minsize`. Run with `minsize` = `dfield->xres`/2 to perform one step of decomposition or `minsize` = 4 to perform full decomposition (or anything between).

`dfield` : | Data field to be transformed (must be square).
`wt_coefs` : | Data line where the wavelet transform coefficients are stored.
`direction` : | Transform direction.
`minsize` : | size of minimal transform result block

### gwy_data_field_dwt_mark_anisotropy ()

    void                gwy_data_field_dwt_mark_anisotropy  (GwyDataField *dfield,
                                                             GwyDataField *mask,
                                                             GwyDataLine *wt_coefs,
                                                             gdouble ratio,
                                                             gint lowlimit);

`dfield` : |
`mask` : |
`wt_coefs` : |
`ratio` : |
`lowlimit` : |