filters

filters — Convolution and other 2D data filters

Synopsis




void        gwy_data_field_normalize        (GwyDataField *data_field);
void        gwy_data_field_renormalize      (GwyDataField *data_field,
                                             gdouble range,
                                             gdouble offset);
void        gwy_data_field_convolve         (GwyDataField *data_field,
                                             GwyDataField *kernel_field);
void        gwy_data_field_area_convolve    (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_median    (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_median
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_mean      (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_mean (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_laplacian (GwyDataField *data_field);
void        gwy_data_field_area_filter_laplacian
                                            (GwyDataField *data_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_sobel     (GwyDataField *data_field,
                                             GwyOrientation orientation);
void        gwy_data_field_area_filter_sobel
                                            (GwyDataField *data_field,
                                             GwyOrientation orientation,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_prewitt   (GwyDataField *data_field,
                                             GwyOrientation orientation);
void        gwy_data_field_area_filter_prewitt
                                            (GwyDataField *data_field,
                                             GwyOrientation orientation,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_minimum   (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_minimum
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_maximum   (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_maximum
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_rms       (GwyDataField *data_field,
                                             gint size);
void        gwy_data_field_area_filter_rms  (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_kuwahara  (GwyDataField *data_field);
void        gwy_data_field_area_filter_kuwahara
                                            (GwyDataField *data_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);
void        gwy_data_field_filter_canny     (GwyDataField *data_field,
                                             gdouble threshold);
void        gwy_data_field_shade            (GwyDataField *data_field,
                                             GwyDataField *target_field,
                                             gdouble theta,
                                             gdouble phi);

Description

Details

gwy_data_field_normalize ()

void        gwy_data_field_normalize        (GwyDataField *data_field);

Normalizes data in a data field to range 0.0 to 1.0.

It is equivalent to gwy_data_field_renormalize(data_field, 1.0, 0.0);

If data_field is filled with only one value, it is changed to 0.0.

data_field : A data field.

gwy_data_field_renormalize ()

void        gwy_data_field_renormalize      (GwyDataField *data_field,
                                             gdouble range,
                                             gdouble offset);

Transforms data in a data field with first linear function to given range.

When range is positive, the new data range is (offset, offset+range); when range is negative, the new data range is (offset-range, offset). In neither case the data are flipped, negative range only means different selection of boundaries.

When range is zero, this method is equivalent to gwy_data_field_fill(data_field, offset).

data_field : A data field.
range : New data interval size.
offset : New data interval offset.

gwy_data_field_convolve ()

void        gwy_data_field_convolve         (GwyDataField *data_field,
                                             GwyDataField *kernel_field);

data_field :
kernel_field :

gwy_data_field_area_convolve ()

void        gwy_data_field_area_convolve    (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Convolves a rectangular part of a data field with given kernel.

data_field : A data field to convolve. It must be larger than kernel_field (or at least of the same size).
kernel_field : Kenrel field to convolve data_field with.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_median ()

void        gwy_data_field_filter_median    (GwyDataField *data_field,
                                             gint size);

data_field :
size :

gwy_data_field_area_filter_median ()

void        gwy_data_field_area_filter_median
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with median filter.

data_field : A data field to apply mean filter to.
size : Averaged area size.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_mean ()

void        gwy_data_field_filter_mean      (GwyDataField *data_field,
                                             gint size);

data_field :
size :

gwy_data_field_area_filter_mean ()

void        gwy_data_field_area_filter_mean (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with mean filter of size size.

data_field : A data field to apply mean filter to.
size : Averaged area size.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_conservative ()

void        gwy_data_field_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size);

data_field :
size :

gwy_data_field_area_filter_conservative ()

void        gwy_data_field_area_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with conservative denoise filter.

data_field : A data field to apply mean filter to.
size : Filtered area size.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_laplacian ()

void        gwy_data_field_filter_laplacian (GwyDataField *data_field);

data_field :

gwy_data_field_area_filter_laplacian ()

void        gwy_data_field_area_filter_laplacian
                                            (GwyDataField *data_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with Laplacian filter.

data_field : A data field to apply mean filter to.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_sobel ()

void        gwy_data_field_filter_sobel     (GwyDataField *data_field,
                                             GwyOrientation orientation);

data_field :
orientation :

gwy_data_field_area_filter_sobel ()

void        gwy_data_field_area_filter_sobel
                                            (GwyDataField *data_field,
                                             GwyOrientation orientation,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with Laplacian filter.

data_field : A data field to apply mean filter to.
orientation : Filter orientation.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_prewitt ()

void        gwy_data_field_filter_prewitt   (GwyDataField *data_field,
                                             GwyOrientation orientation);

data_field :
orientation :

gwy_data_field_area_filter_prewitt ()

void        gwy_data_field_area_filter_prewitt
                                            (GwyDataField *data_field,
                                             GwyOrientation orientation,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with Prewitt filter.

data_field : A data field to apply mean filter to.
orientation : Filter orientation.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_minimum ()

void        gwy_data_field_filter_minimum   (GwyDataField *data_field,
                                             gint size);

Filters a data field with minimum filter.

data_field : A data field to apply minimum filter to.
size : Neighbourhood size for minimum search.

gwy_data_field_area_filter_minimum ()

void        gwy_data_field_area_filter_minimum
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with minimum filter.

data_field : A data field to apply minimum filter to.
size : Neighbourhood size for minimum search.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_maximum ()

void        gwy_data_field_filter_maximum   (GwyDataField *data_field,
                                             gint size);

Filters a data field with maximum filter.

data_field : A data field to apply maximum filter to.
size : Neighbourhood size for maximum search.

gwy_data_field_area_filter_maximum ()

void        gwy_data_field_area_filter_maximum
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with maximum filter.

data_field : A data field to apply maximum filter to.
size : Neighbourhood size for maximum search.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_rms ()

void        gwy_data_field_filter_rms       (GwyDataField *data_field,
                                             gint size);

Filters a data field with RMS filter.

data_field : A data field to apply RMS filter to.
size : Area size.

gwy_data_field_area_filter_rms ()

void        gwy_data_field_area_filter_rms  (GwyDataField *data_field,
                                             gint size,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with RMS filter of size size.

RMS filter computes root mean square in given area.

data_field : A data field to apply RMS filter to.
size : Area size.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_kuwahara ()

void        gwy_data_field_filter_kuwahara  (GwyDataField *data_field);

Filters a data field with Kuwahara filter.

data_field : A data field to apply Kuwahara filter to.

gwy_data_field_area_filter_kuwahara ()

void        gwy_data_field_area_filter_kuwahara
                                            (GwyDataField *data_field,
                                             gint col,
                                             gint row,
                                             gint width,
                                             gint height);

Filters a rectangular part of a data field with a Kuwahara (edge-preserving smoothing) filter.

data_field : A data filed to apply Kuwahara filter to.
col : Upper-left column coordinate.
row : Upper-left row coordinate.
width : Area width (number of columns).
height : Area height (number of rows).

gwy_data_field_filter_canny ()

void        gwy_data_field_filter_canny     (GwyDataField *data_field,
                                             gdouble threshold);

Filters a rectangular part of a data field with canny edge detector filter.

data_field : A data field to apply mean filter to.
threshold : Slope detection threshold (range 0..1).

gwy_data_field_shade ()

void        gwy_data_field_shade            (GwyDataField *data_field,
                                             GwyDataField *target_field,
                                             gdouble theta,
                                             gdouble phi);

Shades a data field.

data_field : A data field.
target_field : A data field to put the shade to. It will be resized to match data_field.
theta : Shading angle (in radians, from north pole).
phi : Shade orientation in xy plane (in radians, counterclockwise).