GwyDataField

GwyDataField — array representing 2D data

Synopsis




enum        GwyFilterType;
enum        GwyMergeType;
enum        GwyWatershedStateType;
enum        GwyComputationStateType;
enum        GwyFractalType;
typedef     GwyWatershedStatus;
struct      GwyDataField;
struct      GwyDataFieldClass;
GObject*    gwy_data_field_new              (gint xres,
                                             gint yres,
                                             gdouble xreal,
                                             gdouble yreal,
                                             gboolean nullme);
void        gwy_data_field_alloc            (GwyDataField *a,
                                             gint xres,
                                             gint yres);
void        gwy_data_field_initialize       (GwyDataField *a,
                                             gint xres,
                                             gint yres,
                                             gdouble xreal,
                                             gdouble yreal,
                                             gboolean nullme);
void        gwy_data_field_resample         (GwyDataField *a,
                                             gint xres,
                                             gint yres,
                                             GwyInterpolationType interpolation);
gboolean    gwy_data_field_resize           (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gboolean    gwy_data_field_copy             (GwyDataField *a,
                                             GwyDataField *b);
gboolean    gwy_data_field_area_copy        (GwyDataField *src,
                                             GwyDataField *dest,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gint destcol,
                                             gint destrow);
gdouble*    gwy_data_field_get_data         (GwyDataField *a);
gint        gwy_data_field_get_xres         (GwyDataField *a);
gint        gwy_data_field_get_yres         (GwyDataField *a);
gdouble     gwy_data_field_get_xreal        (GwyDataField *a);
gdouble     gwy_data_field_get_yreal        (GwyDataField *a);
void        gwy_data_field_set_xreal        (GwyDataField *a,
                                             gdouble xreal);
void        gwy_data_field_set_yreal        (GwyDataField *a,
                                             gdouble yreal);
GwySIUnit*  gwy_data_field_get_si_unit_xy   (GwyDataField *a);
GwySIUnit*  gwy_data_field_get_si_unit_z    (GwyDataField *a);
void        gwy_data_field_set_si_unit_xy   (GwyDataField *a,
                                             GwySIUnit *si_unit);
void        gwy_data_field_set_si_unit_z    (GwyDataField *a,
                                             GwySIUnit *si_unit);
GwySIValueFormat* gwy_data_field_get_value_format_xy
                                            (GwyDataField *data_field,
                                             GwySIValueFormat *format);
GwySIValueFormat* gwy_data_field_get_value_format_z
                                            (GwyDataField *data_field,
                                             GwySIValueFormat *format);
gdouble     gwy_data_field_itor             (GwyDataField *a,
                                             gdouble pixval);
gdouble     gwy_data_field_jtor             (GwyDataField *a,
                                             gdouble pixval);
gdouble     gwy_data_field_rtoi             (GwyDataField *a,
                                             gdouble realval);
gdouble     gwy_data_field_rtoj             (GwyDataField *a,
                                             gdouble realval);
gboolean    gwy_data_field_outside          (GwyDataField *a,
                                             gint col,
                                             gint row);
gdouble     gwy_data_field_get_val          (GwyDataField *a,
                                             gint col,
                                             gint row);
void        gwy_data_field_set_val          (GwyDataField *a,
                                             gint col,
                                             gint row,
                                             gdouble value);
gdouble     gwy_data_field_get_dval         (GwyDataField *a,
                                             gdouble x,
                                             gdouble y,
                                             GwyInterpolationType interpolation);
gdouble     gwy_data_field_get_dval_real    (GwyDataField *a,
                                             gdouble x,
                                             gdouble y,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_rotate           (GwyDataField *a,
                                             gdouble angle,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_invert           (GwyDataField *a,
                                             gboolean x,
                                             gboolean y,
                                             gboolean z);
void        gwy_data_field_fill             (GwyDataField *a,
                                             gdouble value);
void        gwy_data_field_multiply         (GwyDataField *a,
                                             gdouble value);
void        gwy_data_field_add              (GwyDataField *a,
                                             gdouble value);
void        gwy_data_field_area_fill        (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);
void        gwy_data_field_area_multiply    (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);
void        gwy_data_field_area_add         (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);
gdouble     gwy_data_field_get_max          (GwyDataField *a);
gdouble     gwy_data_field_get_min          (GwyDataField *a);
gdouble     gwy_data_field_get_avg          (GwyDataField *a);
gdouble     gwy_data_field_get_rms          (GwyDataField *a);
gdouble     gwy_data_field_get_sum          (GwyDataField *a);
gdouble     gwy_data_field_get_surface_area (GwyDataField *a,
                                             GwyInterpolationType interpolation);
gdouble     gwy_data_field_get_area_max     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gdouble     gwy_data_field_get_area_min     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gdouble     gwy_data_field_get_area_avg     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gdouble     gwy_data_field_get_area_rms     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gdouble     gwy_data_field_get_area_sum     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
gdouble     gwy_data_field_get_area_surface_area
                                            (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwyInterpolationType interpolation);
gint        gwy_data_field_threshold        (GwyDataField *a,
                                             gdouble threshval,
                                             gdouble bottom,
                                             gdouble top);
gint        gwy_data_field_area_threshold   (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble threshval,
                                             gdouble bottom,
                                             gdouble top);
gint        gwy_data_field_clamp            (GwyDataField *a,
                                             gdouble bottom,
                                             gdouble top);
gint        gwy_data_field_area_clamp       (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble bottom,
                                             gdouble top);
gboolean    gwy_data_field_get_data_line    (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gint res,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_get_row          (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row);
void        gwy_data_field_get_column       (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col);
void        gwy_data_field_set_row          (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row);
void        gwy_data_field_set_column       (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col);
void        gwy_data_field_get_row_part     (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row,
                                             gint from,
                                             gint to);
void        gwy_data_field_get_column_part  (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col,
                                             gint from,
                                             gint to);
void        gwy_data_field_plane_coeffs     (GwyDataField *a,
                                             gdouble *ap,
                                             gdouble *bp,
                                             gdouble *cp);
void        gwy_data_field_plane_level      (GwyDataField *a,
                                             gdouble ap,
                                             gdouble bp,
                                             gdouble cp);
void        gwy_data_field_plane_rotate     (GwyDataField *a,
                                             gdouble xangle,
                                             gdouble yangle,
                                             GwyInterpolationType interpolation);
gdouble     gwy_data_field_get_xder         (GwyDataField *a,
                                             gint col,
                                             gint row);
gdouble     gwy_data_field_get_yder         (GwyDataField *a,
                                             gint col,
                                             gint row);
gdouble     gwy_data_field_get_angder       (GwyDataField *a,
                                             gint col,
                                             gint row,
                                             gdouble theta);
gint        gwy_data_field_get_fft_res      (gint data_res);
void        gwy_data_field_2dfft            (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_2dfft_real       (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_2dffthumanize    (GwyDataField *a);
void        gwy_data_field_xfft             (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_yfft             (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_xfft_real        (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_yfft_real        (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);
void        gwy_data_field_cwt              (GwyDataField *data_field,
                                             GwyInterpolationType interpolation,
                                             gdouble scale,
                                             Gwy2DCWTWaveletType wtype);
void        gwy_data_field_shade            (GwyDataField *data_field,
                                             GwyDataField *target_field,
                                             gdouble theta,
                                             gdouble phi);
void        gwy_data_field_get_stats        (GwyDataField *data_field,
                                             gdouble *avg,
                                             gdouble *ra,
                                             gdouble *rms,
                                             gdouble *skew,
                                             gdouble *kurtosis);
void        gwy_data_field_get_area_stats   (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble *avg,
                                             gdouble *ra,
                                             gdouble *rms,
                                             gdouble *skew,
                                             gdouble *kurtosis);
gint        gwy_data_field_get_line_stat_function
                                            (GwyDataField *data_field,
                                             GwyDataLine *target_line,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwySFOutputType type,
                                             GtkOrientation orientation,
                                             GwyInterpolationType interpolation,
                                             GwyWindowingType windowing,
                                             gint nstats);
void        gwy_data_field_filter_median    (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_filter_mean      (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_filter_laplacian (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_filter_sobel     (GwyDataField *data_field,
                                             GtkOrientation orientation,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_filter_prewitt   (GwyDataField *data_field,
                                             GtkOrientation orientation,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_convolve         (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);
void        gwy_data_field_grains_mark_local_maxima
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field);
void        gwy_data_field_grains_mark_height
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);
void        gwy_data_field_grains_mark_slope
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);
void        gwy_data_field_grains_mark_curvature
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);
void        gwy_data_field_grains_mark_watershed
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gint locate_steps,
                                             gint locate_thresh,
                                             gdouble locate_dropsize,
                                             gint wshed_steps,
                                             gdouble wshed_dropsize,
                                             gboolean prefilter,
                                             gint dir);
void        gwy_data_field_grains_remove_manually
                                            (GwyDataField *grain_field,
                                             gint i);
void        gwy_data_field_grains_remove_by_size
                                            (GwyDataField *grain_field,
                                             gint size);
void        gwy_data_field_grains_remove_by_height
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint direction);
void        gwy_data_field_grains_watershed_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             GwyWatershedStatus *status,
                                             gint locate_steps,
                                             gint locate_thresh,
                                             gdouble locate_dropsize,
                                             gint wshed_steps,
                                             gdouble wshed_dropsize,
                                             gboolean prefilter,
                                             gint dir);
gdouble     gwy_data_field_grains_get_average
                                            (GwyDataField *grain_field);
void        gwy_data_field_grains_get_distribution
                                            (GwyDataField *grain_field,
                                             GwyDataLine *distribution);
void        gwy_data_field_grains_add       (GwyDataField *grain_field,
                                             GwyDataField *add_field);
void        gwy_data_field_grains_intersect (GwyDataField *grain_field,
                                             GwyDataField *intersect_field);
void        gwy_data_field_fit_lines        (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwyFitLineType fit_type,
                                             gboolean exclude,
                                             GtkOrientation orientation);
gdouble     gwy_data_field_get_correlation_score
                                            (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint kernel_ulcol,
                                             gint kernel_ulrow,
                                             gint kernel_brcol,
                                             gint kernel_brrow);
void        gwy_data_field_croscorrelate    (GwyDataField *data_field1,
                                             GwyDataField *data_field2,
                                             GwyDataField *x_dist,
                                             GwyDataField *y_dist,
                                             GwyDataField *score,
                                             gint search_width,
                                             gint search_height,
                                             gint window_width,
                                             gint window_height);
void        gwy_data_field_croscorrelate_iteration
                                            (GwyDataField *data_field1,
                                             GwyDataField *data_field2,
                                             GwyDataField *x_dist,
                                             GwyDataField *y_dist,
                                             GwyDataField *score,
                                             gint search_width,
                                             gint search_height,
                                             gint window_width,
                                             gint window_height,
                                             GwyComputationStateType *state,
                                             gint *iteration);
void        gwy_data_field_correlate        (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             GwyDataField *score);
void        gwy_data_field_correlate_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             GwyDataField *score,
                                             GwyComputationStateType *state,
                                             gint *iteration);
void        gwy_data_field_fractal_partitioning
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_fractal_cubecounting
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_fractal_triangulation
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);
void        gwy_data_field_fractal_psdf     (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);
gdouble     gwy_data_field_fractal_cubecounting_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);
gdouble     gwy_data_field_fractal_triangulation_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);
gdouble     gwy_data_field_fractal_partitioning_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);
gdouble     gwy_data_field_fractal_psdf_dim (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);
void        gwy_data_field_correct_laplace_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *mask_field,
                                             GwyDataField *buffer_field,
                                             gdouble *error,
                                             gdouble *corfactor);
void        gwy_data_field_correct_average  (GwyDataField *data_field,
                                             GwyDataField *mask_field);
void        gwy_data_field_mask_outliers    (GwyDataField *data_field,
                                             GwyDataField *mask_field,
                                             gdouble thresh);

Object Hierarchy


  GObject
   +----GwyDataField

Implemented Interfaces

GwyDataField implements GwySerializable and GwyWatchable.

Description

GwyDataField is an object that is used for representation of all two-dimensional data matrices. Most of the basic data handling and processing functions in Gwyddion are declared here as they are connected with GwyDataField.

Details

enum GwyFilterType

typedef enum {
      GWY_FILTER_MEAN          = 0, /*mean value filter (averaging)*/
      GWY_FILTER_MEDIAN        = 1, /*median value filter*/
      GWY_FILTER_CONSERVATIVE  = 2, /*conservative denoising filter*/
      GWY_FILTER_LAPLACIAN     = 3, /*Laplacian 2nd derivative filter*/
      GWY_FILTER_SOBEL         = 4, /*Sobel gradient filter*/
      GWY_FILTER_PREWITT       = 5  /*Prewitt gradient filter*/
} GwyFilterType;

Filtering type. Possibilities constist of simple statisical and directional filters.


enum GwyMergeType

typedef enum {
    GWY_MERGE_UNION        = 0, /*union of all found grains*/
    GWY_MERGE_INTERSECTION = 1  /*intersection of grains found by different methods*/
} GwyMergeType;

Mask processing merging (namely used in grain processing).


enum GwyWatershedStateType

typedef enum {
    GWY_WSHED_INIT         = 0, /*start initializations*/
    GWY_WSHED_LOCATE       = 1, /*locate steps*/ 
    GWY_WSHED_MIN          = 2, /*find minima*/
    GWY_WSHED_WSHED        = 3, /*watershed steps*/
    GWY_WSHED_MARK         = 4, /*mark grain boundaries*/
    GWY_WSHED_FINISHED     = 5
} GwyWatershedStateType;


enum GwyComputationStateType

typedef enum {
    GWY_COMP_INIT         = 0, /*start initializations*/
    GWY_COMP_ITERATE      = 1, /*locate steps*/ 
    GWY_COMP_FINISHED     = 2
} GwyComputationStateType;


enum GwyFractalType

typedef enum {
    GWY_FRACTAL_PARTITIONING  = 0,
    GWY_FRACTAL_CUBECOUNTING  = 1,
    GWY_FRACTAL_TRIANGULATION = 2,
    GWY_FRACTAL_PSDF          = 3
} GwyFractalType;


GwyWatershedStatus

typedef struct {
    GwyWatershedStateType state;
    gint internal_i;
    GwyDataField *min; 
    GwyDataField *water; 
    GwyDataField *mark_dfield;
    gint fraction;
    GString *description;
} GwyWatershedStatus;


struct GwyDataField

struct GwyDataField;


struct GwyDataFieldClass

struct GwyDataFieldClass {

        GObjectClass parent_class;
};


gwy_data_field_new ()

GObject*    gwy_data_field_new              (gint xres,
                                             gint yres,
                                             gdouble xreal,
                                             gdouble yreal,
                                             gboolean nullme);

xres:
yres:
xreal:
yreal:
nullme:
Returns :

gwy_data_field_alloc ()

void        gwy_data_field_alloc            (GwyDataField *a,
                                             gint xres,
                                             gint yres);

Allocates GwyDataField

a: pointer fo field to be allocated
xres: X resolution
yres: Y resolution

gwy_data_field_initialize ()

void        gwy_data_field_initialize       (GwyDataField *a,
                                             gint xres,
                                             gint yres,
                                             gdouble xreal,
                                             gdouble yreal,
                                             gboolean nullme);

Allocates and initializes GwyDataField.

a: A data field to be initialized
xres: X resolution
yres: Y resolution
xreal: X real dimension of the field
yreal: Y real dimension of the field
nullme: true if field should be filled with zeros

gwy_data_field_resample ()

void        gwy_data_field_resample         (GwyDataField *a,
                                             gint xres,
                                             gint yres,
                                             GwyInterpolationType interpolation);

Resamples GwyDataField using given interpolation method

a: A data field to be resampled
xres: desired X resolution
yres: desired Y resolution
interpolation: interpolation method

gwy_data_field_resize ()

gboolean    gwy_data_field_resize           (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

Resizes (crops) the GwyDataField.

Extracts part of the GwyDataField.between upper-left and bottom-right points.

a: A data field to be resized
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate (exclusive)
brrow: bottom-right row coordinate (exclusive)
Returns :TRUE at success

gwy_data_field_copy ()

gboolean    gwy_data_field_copy             (GwyDataField *a,
                                             GwyDataField *b);

Copies the contents of an already allocated data field to a data field of the same size.

a: source data field.
b: destination data field.
Returns :

gwy_data_field_area_copy ()

gboolean    gwy_data_field_area_copy        (GwyDataField *src,
                                             GwyDataField *dest,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gint destcol,
                                             gint destrow);

Copies a rectangular area from src to dest.

The area starts at (ulcol, ulrow) in src and ends at (brcol, brrow) (noninclusive). It is copied to dest starting from (destcol, destrow).

There must be enough room in the destination data field, areas sticking out are rejected. If src is equal to dest, the areas may not overlap.

src: Source data field.
dest: Destination data field.
ulcol: Starting column.
ulrow: Starting row.
brcol: Ending column (noninclusive).
brrow: Ending row (noninclusive).
destcol: Destination column.
destrow: Destination row.
Returns : Whether it succeeded (area sizes OK).

gwy_data_field_get_data ()

gdouble*    gwy_data_field_get_data         (GwyDataField *a);

Get the data of the field.

a: A data field
Returns : The data field as a pointer to an array of gwy_data_field_get_xres()*gwy_data_field_get_yres() gdouble's, ordered by lines. I.e., they are to be accessed as data[row*xres + column].

gwy_data_field_get_xres ()

gint        gwy_data_field_get_xres         (GwyDataField *a);

Get X resolution of the field.

a: A data field
Returns :X resolution

gwy_data_field_get_yres ()

gint        gwy_data_field_get_yres         (GwyDataField *a);

Get Y resolution of the field.

a: A data field
Returns : Y resolution

gwy_data_field_get_xreal ()

gdouble     gwy_data_field_get_xreal        (GwyDataField *a);

Get the X real size value

a: A data field
Returns :X real size value

gwy_data_field_get_yreal ()

gdouble     gwy_data_field_get_yreal        (GwyDataField *a);

Get the Y real size value

a: A data field
Returns : Y real size value

gwy_data_field_set_xreal ()

void        gwy_data_field_set_xreal        (GwyDataField *a,
                                             gdouble xreal);

Set the X real size value

a: A data field
xreal: new X real size value

gwy_data_field_set_yreal ()

void        gwy_data_field_set_yreal        (GwyDataField *a,
                                             gdouble yreal);

Set the Y real size value

a: A data field
yreal: new Y real size value

gwy_data_field_get_si_unit_xy ()

GwySIUnit*  gwy_data_field_get_si_unit_xy   (GwyDataField *a);

a: A data field
Returns : SI unit corresponding to the lateral (XY) dimensions of the field

gwy_data_field_get_si_unit_z ()

GwySIUnit*  gwy_data_field_get_si_unit_z    (GwyDataField *a);

a: A data field
Returns : SI unit corresponding to the "height" (Z) dimension of the field

gwy_data_field_set_si_unit_xy ()

void        gwy_data_field_set_si_unit_xy   (GwyDataField *a,
                                             GwySIUnit *si_unit);

Sets the SI unit corresponding to the lateral (XY) dimensions of the field.

a: A data field
si_unit: SI unit to be set

gwy_data_field_set_si_unit_z ()

void        gwy_data_field_set_si_unit_z    (GwyDataField *a,
                                             GwySIUnit *si_unit);

Sets the SI unit corresponding to the "height" (Z) dimension of the field.

a: A data field
si_unit: SI unit to be set

gwy_data_field_get_value_format_xy ()

GwySIValueFormat* gwy_data_field_get_value_format_xy
                                            (GwyDataField *data_field,
                                             GwySIValueFormat *format);

Finds value format good for displaying coordinates of data_field.

data_field: A data field.
format: A SI value format to modify, or NULL to allocate a new one.
Returns : The value format. If format was NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

gwy_data_field_get_value_format_z ()

GwySIValueFormat* gwy_data_field_get_value_format_z
                                            (GwyDataField *data_field,
                                             GwySIValueFormat *format);

Finds value format good for displaying values of data_field.

data_field: A data field.
format: A SI value format to modify, or NULL to allocate a new one.
Returns : The value format. If format was NULL, a newly allocated format is returned, otherwise (modified) format itself is returned.

gwy_data_field_itor ()

gdouble     gwy_data_field_itor             (GwyDataField *a,
                                             gdouble pixval);

recomputes row pixel coordinate to real coordinate

a: A data field
pixval: value at data (pixel) coordinates
Returns : recomputed value

gwy_data_field_jtor ()

gdouble     gwy_data_field_jtor             (GwyDataField *a,
                                             gdouble pixval);

recomputes column real coordinate to pixel coordinate

Note: for field represented by square grid (same distance between adjacent pixels in X and Y dimension, the functions gwy_data_field_itor() and gwy_data_field_jtor() are identical.

a: A data field
pixval: value at real coordinates
Returns : recomputed value

gwy_data_field_rtoi ()

gdouble     gwy_data_field_rtoi             (GwyDataField *a,
                                             gdouble realval);

recomputes row real coordinate to pixel coordinate

a: A data field
realval: value at real coordinates
Returns : recomputed value

gwy_data_field_rtoj ()

gdouble     gwy_data_field_rtoj             (GwyDataField *a,
                                             gdouble realval);

recomputes column real coordinate to pixel coordinate

a: A data field
realval: value at real coordinates
Returns : recomputed value

gwy_data_field_outside ()

gboolean    gwy_data_field_outside          (GwyDataField *a,
                                             gint col,
                                             gint row);

a:
col:
row:
Returns :

gwy_data_field_get_val ()

gdouble     gwy_data_field_get_val          (GwyDataField *a,
                                             gint col,
                                             gint row);

Get value at given pixel

a: A data field
col: column position
row: row position
Returns : value at (i, j)

gwy_data_field_set_val ()

void        gwy_data_field_set_val          (GwyDataField *a,
                                             gint col,
                                             gint row,
                                             gdouble value);

Set value at given pixel

a: A data field
col: column position
row: row position
value: value to set

gwy_data_field_get_dval ()

gdouble     gwy_data_field_get_dval         (GwyDataField *a,
                                             gdouble x,
                                             gdouble y,
                                             GwyInterpolationType interpolation);

Interpolates to extract a value of the field in arbitrary position.

a: A data field
x: x position
y: y postition
interpolation: interpolation method to be used
Returns : value at the position (x,y).

gwy_data_field_get_dval_real ()

gdouble     gwy_data_field_get_dval_real    (GwyDataField *a,
                                             gdouble x,
                                             gdouble y,
                                             GwyInterpolationType interpolation);

Get value at arbitrary point given by real values.

See also gwy_data_field_get_dval() that does the same for arbitrary point given by data (pixel) coordinate values.

a: A data field
x: x postion in real coordinates
y: y postition in real coordinates
interpolation: interpolation method
Returns : value at point x, y

gwy_data_field_rotate ()

void        gwy_data_field_rotate           (GwyDataField *a,
                                             gdouble angle,
                                             GwyInterpolationType interpolation);

Rotates field by a given angle.

The values that will be outside of square after rotation will be lost. The new unknown values will be set to field minimum value.

a: A data field
angle: angle (in degrees)
interpolation: interpolation method

gwy_data_field_invert ()

void        gwy_data_field_invert           (GwyDataField *a,
                                             gboolean x,
                                             gboolean y,
                                             gboolean z);

Make requested inversion(s).

a: pointer fo field
x: invert in X direction?
y: invert in Y direction?
z: invert in Z direction?

gwy_data_field_fill ()

void        gwy_data_field_fill             (GwyDataField *a,
                                             gdouble value);

Fill GwyDataField with given value

a: A data field
value: value to be entered

gwy_data_field_multiply ()

void        gwy_data_field_multiply         (GwyDataField *a,
                                             gdouble value);

Multiply GwyDataField by given value.

a: A data field
value: value to be used for multiplication

gwy_data_field_add ()

void        gwy_data_field_add              (GwyDataField *a,
                                             gdouble value);

Add given value to GwyDataField

a: A data field
value: value to be added

gwy_data_field_area_fill ()

void        gwy_data_field_area_fill        (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);

Fill a specified part of the field witha given value

a: A data field
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate + 1
brrow: bottom-right row coordinate + 1
value: value to be entered

gwy_data_field_area_multiply ()

void        gwy_data_field_area_multiply    (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);

Multiply a specified part of the field by the given value

a: A data field
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate + 1
brrow: bottom-right row coordinate + 1
value: value to be used

gwy_data_field_area_add ()

void        gwy_data_field_area_add         (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble value);

Add the given value to a specified part of the field

a: A data field
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate + 1
brrow: bottom-right row coordinate + 1
value: value to be used

gwy_data_field_get_max ()

gdouble     gwy_data_field_get_max          (GwyDataField *a);

Get maximum value of the GwyDataField.

a: A data field
Returns :maximum value of the GwyDataField

gwy_data_field_get_min ()

gdouble     gwy_data_field_get_min          (GwyDataField *a);

Get minimum value of the GwyDataField

a: A data field
Returns : minimum value of the GwyDataField

gwy_data_field_get_avg ()

gdouble     gwy_data_field_get_avg          (GwyDataField *a);

Averages values of GwyDataField

a: A data field
Returns : Average value of GwyDataField

gwy_data_field_get_rms ()

gdouble     gwy_data_field_get_rms          (GwyDataField *a);

Evaluates Root mean square value of GwyDataField

a: A data field
Returns : RMS of GwyDataField

gwy_data_field_get_sum ()

gdouble     gwy_data_field_get_sum          (GwyDataField *a);

Sum all the values in GwyDataField

a: A data field
Returns : sum of GwyDataField.

gwy_data_field_get_surface_area ()

gdouble     gwy_data_field_get_surface_area (GwyDataField *a,
                                             GwyInterpolationType interpolation);

Computes surface area.

a: data field
interpolation: interpolation method
Returns : surface area

gwy_data_field_get_area_max ()

gdouble     gwy_data_field_get_area_max     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

a:
ulcol:
ulrow:
brcol:
brrow:
Returns :

gwy_data_field_get_area_min ()

gdouble     gwy_data_field_get_area_min     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

a:
ulcol:
ulrow:
brcol:
brrow:
Returns :

gwy_data_field_get_area_avg ()

gdouble     gwy_data_field_get_area_avg     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

a:
ulcol:
ulrow:
brcol:
brrow:
Returns :

gwy_data_field_get_area_rms ()

gdouble     gwy_data_field_get_area_rms     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

a:
ulcol:
ulrow:
brcol:
brrow:
Returns :

gwy_data_field_get_area_sum ()

gdouble     gwy_data_field_get_area_sum     (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

a:
ulcol:
ulrow:
brcol:
brrow:
Returns :

gwy_data_field_get_area_surface_area ()

gdouble     gwy_data_field_get_area_surface_area
                                            (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwyInterpolationType interpolation);

Computes surface area of selected part of area.

a: data field
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate
brrow: bottom-right row coordinate
interpolation: interpolation method
Returns :

gwy_data_field_threshold ()

gint        gwy_data_field_threshold        (GwyDataField *a,
                                             gdouble threshval,
                                             gdouble bottom,
                                             gdouble top);

Tresholds values of GwyDataField. Values smaller than threshold will be set to value bottom, values higher than threshold will be set to value top

a: A data field
threshval: threshold value
bottom: lower value
top: upper value
Returns : total number of values above threshold.

gwy_data_field_area_threshold ()

gint        gwy_data_field_area_threshold   (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble threshval,
                                             gdouble bottom,
                                             gdouble top);

a:
ulcol:
ulrow:
brcol:
brrow:
threshval:
bottom:
top:
Returns :

gwy_data_field_clamp ()

gint        gwy_data_field_clamp            (GwyDataField *a,
                                             gdouble bottom,
                                             gdouble top);

a:
bottom:
top:
Returns :

gwy_data_field_area_clamp ()

gint        gwy_data_field_area_clamp       (GwyDataField *a,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble bottom,
                                             gdouble top);

a:
ulcol:
ulrow:
brcol:
brrow:
bottom:
top:
Returns :

gwy_data_field_get_data_line ()

gboolean    gwy_data_field_get_data_line    (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gint res,
                                             GwyInterpolationType interpolation);

Extracts a profile from data field and puts it into data line. It is expected that the data line is allready allocated.

a: A data field
b: A data line
ulcol: upper-left column coordinate
ulrow: upper-left row coordinate
brcol: bottom-right column coordinate + 1
brrow: bottom-right row coordinate + 1
res: requested resolution of data line
interpolation: interpolation type
Returns : true at success

gwy_data_field_get_row ()

void        gwy_data_field_get_row          (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row);

Extracts row into data line. Data line should be allocated allready.

a: A data field
b: A data line
row: index of row

gwy_data_field_get_column ()

void        gwy_data_field_get_column       (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col);

Extracts column into data line. Data line should be allocated allready.

a: A data field
b: A data line
col: index of column

gwy_data_field_set_row ()

void        gwy_data_field_set_row          (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row);

Sets the row in the data field to values of data line.

a: A data field
b: A data line
row: index of row

gwy_data_field_set_column ()

void        gwy_data_field_set_column       (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col);

Sets the column in the data field to values of data line.

a: A data field
b: A data line
col: index of column

gwy_data_field_get_row_part ()

void        gwy_data_field_get_row_part     (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint row,
                                             gint from,
                                             gint to);

Extracts row part into data line. Data line should be allocated allready.

a: A data field
b: A data line
row: index of row
from: beginning index
to: end index

gwy_data_field_get_column_part ()

void        gwy_data_field_get_column_part  (GwyDataField *a,
                                             GwyDataLine *b,
                                             gint col,
                                             gint from,
                                             gint to);

Extracts column part into data line. Data line should be allocated allready.

a: A data field
b: A data line
col: index of column
from: beginning index
to: end index

gwy_data_field_plane_coeffs ()

void        gwy_data_field_plane_coeffs     (GwyDataField *a,
                                             gdouble *ap,
                                             gdouble *bp,
                                             gdouble *cp);

Evaluates coefficients of plane fit of data field.

a: A data field
ap: coefficient
bp: coefficient
cp: coefficient

gwy_data_field_plane_level ()

void        gwy_data_field_plane_level      (GwyDataField *a,
                                             gdouble ap,
                                             gdouble bp,
                                             gdouble cp);

Plane leveling.

a: A data field
ap: coefficient
bp: coefficient
cp: coefficient

gwy_data_field_plane_rotate ()

void        gwy_data_field_plane_rotate     (GwyDataField *a,
                                             gdouble xangle,
                                             gdouble yangle,
                                             GwyInterpolationType interpolation);

Performs rotation of plane along x and y axis.

a: A data field
xangle: rotation angle in x direction (rotation along y axis)
yangle: rotation angle in y direction (rotation along x axis)
interpolation: interpolation type

gwy_data_field_get_xder ()

gdouble     gwy_data_field_get_xder         (GwyDataField *a,
                                             gint col,
                                             gint row);

Computes derivative in x-direction.

a: A data field
col: column coordinate
row: row coordinate
Returns : Derivative in x-direction

gwy_data_field_get_yder ()

gdouble     gwy_data_field_get_yder         (GwyDataField *a,
                                             gint col,
                                             gint row);

Computes derivative in y-direction.

a: A data field
col: column coordinate
row: row coordinate
Returns : Derivative in y-direction

gwy_data_field_get_angder ()

gdouble     gwy_data_field_get_angder       (GwyDataField *a,
                                             gint col,
                                             gint row,
                                             gdouble theta);

Computes derivative in direction specified by given angle. Angle is given in degrees.

a: A data field
col: column coordinate
row: row coordinate
theta: angle specifying direction
Returns : Derivative in direction given by angle theta

gwy_data_field_get_fft_res ()

gint        gwy_data_field_get_fft_res      (gint data_res);

Finds the closest 2^N value.

data_res: data resolution
Returns : 2^N good for FFT.

gwy_data_field_2dfft ()

void        gwy_data_field_2dfft            (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

Computes 2D FFT using a specified 1D alogrithm. This can be for example "gwy_data_line_fft_hum", which is the simplest algoritm avalilable. If requested a windowing and/or leveling is applied to preprocess data to obtain reasonable results.

ra: Real input data field
ia: Imaginary input data field
rb: Real output data field
ib: Imaginary output data field
fft: 1D FFT algorithm
windowing: windowing type
direction: FFT direction (1 or -1)
interpolation: interpolation type
preserverms: preserve RMS while windowing
level: level data before computation

gwy_data_field_2dfft_real ()

void        gwy_data_field_2dfft_real       (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

Computes 2D FFT using a specified 1D algorithm. As the input is only real, the computation can be a little bit faster.

ra: Real input data field
rb: Real output data field
ib: Imaginary output data field
fft: 1D FFT algorithm
windowing: windowing type
direction: FFT direction (1 or -1)
interpolation: interpolation type
preserverms: preserve RMS while windowing
level: level data before computation

gwy_data_field_2dffthumanize ()

void        gwy_data_field_2dffthumanize    (GwyDataField *a);

Swap top-left, top-right, bottom-left and bottom-right squares to obtain a humanized 2D FFT output with 0,0 in the center.

a: A data field

gwy_data_field_xfft ()

void        gwy_data_field_xfft             (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

Transform all rows in the data field using 1D algorithm and other parameters specified.

ra: Real input data field
ia: Imaginary input data field
rb: Real output data field
ib: Imaginary output data field
fft: 1D FFT algorithm
windowing: windowing type
direction: FFT direction (1 or -1)
interpolation: interpolation type
preserverms: preserve RMS while windowing
level: level data before computation

gwy_data_field_yfft ()

void        gwy_data_field_yfft             (GwyDataField *ra,
                                             GwyDataField *ia,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

Transform all columns in the data field using 1D algorithm and other parameters specified.

ra: Real input data field
ia: Imaginary input data field
rb: Real output data field
ib: Imaginary output data field
fft: 1D FFT algorithm
windowing: windowing type
direction: FFT direction (1 or -1)
interpolation: interpolation type
preserverms: preserve RMS while windowing
level: level data before computation

gwy_data_field_xfft_real ()

void        gwy_data_field_xfft_real        (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

Transform all rows in the data field using 1D algorithm and other parameters specified. Only real input field is used, so computation can be faster.

ra: Real input data field
rb: Real output data field
ib: Imaginary output data field
fft: 1D FFT algorithm
windowing: windowing type
direction: FFT direction (1 or -1)
interpolation: interpolation type
preserverms: preserve RMS while windowing
level: level data before computation

gwy_data_field_yfft_real ()

void        gwy_data_field_yfft_real        (GwyDataField *ra,
                                             GwyDataField *rb,
                                             GwyDataField *ib,
                                             void (*fft) (),
                                             GwyWindowingType windowing,
                                             gint direction,
                                             GwyInterpolationType interpolation,
                                             gboolean preserverms,
                                             gboolean level);

ra:
rb:
ib:
fft:
windowing:
direction:
interpolation:
preserverms:
level:

gwy_data_field_cwt ()

void        gwy_data_field_cwt              (GwyDataField *data_field,
                                             GwyInterpolationType interpolation,
                                             gdouble scale,
                                             Gwy2DCWTWaveletType wtype);

Compute a continuous wavelet transform at given scale and using given wavelet.

data_field: A data field
interpolation: interpolation type
scale: wavelet scale
wtype: wavelet type

gwy_data_field_shade ()

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

Creates a shaded data field. Target field should be allready allocated.

data_field: A data field
target_field: A shaded data field
theta: shading angle
phi: shading angle

gwy_data_field_get_stats ()

void        gwy_data_field_get_stats        (GwyDataField *data_field,
                                             gdouble *avg,
                                             gdouble *ra,
                                             gdouble *rms,
                                             gdouble *skew,
                                             gdouble *kurtosis);

Computes basic statistical quantities in one interation over the datafield.

data_field: A data field
avg: average height value of the surface
ra: average value of the irregularities
rms: root mean square value of the irregularities (Rq)
skew: skew (symmetry of height distribution)
kurtosis: kurtosis (peakedness of height ditribution)

gwy_data_field_get_area_stats ()

void        gwy_data_field_get_area_stats   (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             gdouble *avg,
                                             gdouble *ra,
                                             gdouble *rms,
                                             gdouble *skew,
                                             gdouble *kurtosis);

data_field:
ulcol:
ulrow:
brcol:
brrow:
avg:
ra:
rms:
skew:
kurtosis:

gwy_data_field_get_line_stat_function ()

gint        gwy_data_field_get_line_stat_function
                                            (GwyDataField *data_field,
                                             GwyDataLine *target_line,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwySFOutputType type,
                                             GtkOrientation orientation,
                                             GwyInterpolationType interpolation,
                                             GwyWindowingType windowing,
                                             gint nstats);

data_field:
target_line:
ulcol:
ulrow:
brcol:
brrow:
type:
orientation:
interpolation:
windowing:
nstats:
Returns :

gwy_data_field_filter_median ()

void        gwy_data_field_filter_median    (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
size:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_filter_mean ()

void        gwy_data_field_filter_mean      (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
size:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_filter_conservative ()

void        gwy_data_field_filter_conservative
                                            (GwyDataField *data_field,
                                             gint size,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
size:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_filter_laplacian ()

void        gwy_data_field_filter_laplacian (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_filter_sobel ()

void        gwy_data_field_filter_sobel     (GwyDataField *data_field,
                                             GtkOrientation orientation,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
orientation:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_filter_prewitt ()

void        gwy_data_field_filter_prewitt   (GwyDataField *data_field,
                                             GtkOrientation orientation,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
orientation:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_convolve ()

void        gwy_data_field_convolve         (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow);

data_field:
kernel_field:
ulcol:
ulrow:
brcol:
brrow:

gwy_data_field_grains_mark_local_maxima ()

void        gwy_data_field_grains_mark_local_maxima
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field);

data_field:
grain_field:

gwy_data_field_grains_mark_height ()

void        gwy_data_field_grains_mark_height
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);

data_field:
grain_field:
threshval:
dir:

gwy_data_field_grains_mark_slope ()

void        gwy_data_field_grains_mark_slope
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);

data_field:
grain_field:
threshval:
dir:

gwy_data_field_grains_mark_curvature ()

void        gwy_data_field_grains_mark_curvature
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint dir);

data_field:
grain_field:
threshval:
dir:

gwy_data_field_grains_mark_watershed ()

void        gwy_data_field_grains_mark_watershed
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gint locate_steps,
                                             gint locate_thresh,
                                             gdouble locate_dropsize,
                                             gint wshed_steps,
                                             gdouble wshed_dropsize,
                                             gboolean prefilter,
                                             gint dir);

data_field:
grain_field:
locate_steps:
locate_thresh:
locate_dropsize:
wshed_steps:
wshed_dropsize:
prefilter:
dir:

gwy_data_field_grains_remove_manually ()

void        gwy_data_field_grains_remove_manually
                                            (GwyDataField *grain_field,
                                             gint i);

grain_field:
i:

gwy_data_field_grains_remove_by_size ()

void        gwy_data_field_grains_remove_by_size
                                            (GwyDataField *grain_field,
                                             gint size);

grain_field:
size:

gwy_data_field_grains_remove_by_height ()

void        gwy_data_field_grains_remove_by_height
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             gdouble threshval,
                                             gint direction);

data_field:
grain_field:
threshval:
direction:

gwy_data_field_grains_watershed_iteration ()

void        gwy_data_field_grains_watershed_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *grain_field,
                                             GwyWatershedStatus *status,
                                             gint locate_steps,
                                             gint locate_thresh,
                                             gdouble locate_dropsize,
                                             gint wshed_steps,
                                             gdouble wshed_dropsize,
                                             gboolean prefilter,
                                             gint dir);

data_field:
grain_field:
status:
locate_steps:
locate_thresh:
locate_dropsize:
wshed_steps:
wshed_dropsize:
prefilter:
dir:

gwy_data_field_grains_get_average ()

gdouble     gwy_data_field_grains_get_average
                                            (GwyDataField *grain_field);

grain_field:
Returns :

gwy_data_field_grains_get_distribution ()

void        gwy_data_field_grains_get_distribution
                                            (GwyDataField *grain_field,
                                             GwyDataLine *distribution);

grain_field:
distribution:

gwy_data_field_grains_add ()

void        gwy_data_field_grains_add       (GwyDataField *grain_field,
                                             GwyDataField *add_field);

grain_field:
add_field:

gwy_data_field_grains_intersect ()

void        gwy_data_field_grains_intersect (GwyDataField *grain_field,
                                             GwyDataField *intersect_field);

grain_field:
intersect_field:

gwy_data_field_fit_lines ()

void        gwy_data_field_fit_lines        (GwyDataField *data_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint brcol,
                                             gint brrow,
                                             GwyFitLineType fit_type,
                                             gboolean exclude,
                                             GtkOrientation orientation);

data_field:
ulcol:
ulrow:
brcol:
brrow:
fit_type:
exclude:
orientation:

gwy_data_field_get_correlation_score ()

gdouble     gwy_data_field_get_correlation_score
                                            (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             gint ulcol,
                                             gint ulrow,
                                             gint kernel_ulcol,
                                             gint kernel_ulrow,
                                             gint kernel_brcol,
                                             gint kernel_brrow);

Computes correlation score. Correlation window size is given by kernel_ulcol, kernel_ulrow, kernel_brcol, kernel_brrow, postion of the correlation window on data is given by ulcol, ulrow. If anything fails (data too close to boundary, etc.), function returns -1 (none correlation).

data_field: data field
kernel_field: kernel to be correlated with data field
ulcol: upper-left column position in the data field
ulrow: upper-left row position in the data field
kernel_ulcol: upper-left column position in kernel field
kernel_ulrow: upper-left row position in kernel field
kernel_brcol: bottom-right column position in kernel field
kernel_brrow: bottom-right row position in kernel field
Returns : correlation score (between -1 and 1). Number 1 denotes maximum correlation, -1 none correlation.

gwy_data_field_croscorrelate ()

void        gwy_data_field_croscorrelate    (GwyDataField *data_field1,
                                             GwyDataField *data_field2,
                                             GwyDataField *x_dist,
                                             GwyDataField *y_dist,
                                             GwyDataField *score,
                                             gint search_width,
                                             gint search_height,
                                             gint window_width,
                                             gint window_height);

Algotihm for matching two different images of the same object under changes. It does not use any special features for matching. It simply searches for all points (with their neighbourhood) of data_field1 within data_field2. Parameters search_width and search_height determine maimum area where to search for points. The area is cenetered in the data_field2 at former position of points at data_field1.

data_field1: data field
data_field2: data field
x_dist: field of resulting x-distances
y_dist: field of resulting y-distances
score: correlation score result
search_width: search area width
search_height: search area height
window_width: correlation window width
window_height: correlation window height

gwy_data_field_croscorrelate_iteration ()

void        gwy_data_field_croscorrelate_iteration
                                            (GwyDataField *data_field1,
                                             GwyDataField *data_field2,
                                             GwyDataField *x_dist,
                                             GwyDataField *y_dist,
                                             GwyDataField *score,
                                             gint search_width,
                                             gint search_height,
                                             gint window_width,
                                             gint window_height,
                                             GwyComputationStateType *state,
                                             gint *iteration);

Algotihm for matching two different images of the same object under changes. It does not use any special features for matching. It simply searches for all points (with their neighbourhood) of data_field1 within data_field2. Parameters search_width and search_height determine maimum area where to search for points. The area is cenetered in the data_field2 at former position of points at data_field1.

data_field1: data field
data_field2: data field
x_dist: field of resulting x-distances
y_dist: field of resulting y-distances
score: correlation score
search_width: search area width
search_height: search area height
window_width: correlation window width
window_height: correlation window height
state: state of computation
iteration: iteration of computation loop (winthin GWY_COMP_ITERATE state)

gwy_data_field_correlate ()

void        gwy_data_field_correlate        (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             GwyDataField *score);

Computes correlation score for all the points in data field data_field and full size of correlation kernel kernel_field.

data_field: data field
kernel_field: correlation kernel
score: result scores

gwy_data_field_correlate_iteration ()

void        gwy_data_field_correlate_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *kernel_field,
                                             GwyDataField *score,
                                             GwyComputationStateType *state,
                                             gint *iteration);

Performs one iteration of correlation.

data_field: data field
kernel_field: kernel to be correlated with data
score: correlation scores
state: state of iteration
iteration: actual iteration row coordinate

gwy_data_field_fractal_partitioning ()

void        gwy_data_field_fractal_partitioning
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);

data_field:
xresult:
yresult:
interpolation:

gwy_data_field_fractal_cubecounting ()

void        gwy_data_field_fractal_cubecounting
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);

data_field:
xresult:
yresult:
interpolation:

gwy_data_field_fractal_triangulation ()

void        gwy_data_field_fractal_triangulation
                                            (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);

data_field:
xresult:
yresult:
interpolation:

gwy_data_field_fractal_psdf ()

void        gwy_data_field_fractal_psdf     (GwyDataField *data_field,
                                             GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             GwyInterpolationType interpolation);

data_field:
xresult:
yresult:
interpolation:

gwy_data_field_fractal_cubecounting_dim ()

gdouble     gwy_data_field_fractal_cubecounting_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);

xresult:
yresult:
a:
b:
Returns :

gwy_data_field_fractal_triangulation_dim ()

gdouble     gwy_data_field_fractal_triangulation_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);

xresult:
yresult:
a:
b:
Returns :

gwy_data_field_fractal_partitioning_dim ()

gdouble     gwy_data_field_fractal_partitioning_dim
                                            (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);

xresult:
yresult:
a:
b:
Returns :

gwy_data_field_fractal_psdf_dim ()

gdouble     gwy_data_field_fractal_psdf_dim (GwyDataLine *xresult,
                                             GwyDataLine *yresult,
                                             gdouble *a,
                                             gdouble *b);

xresult:
yresult:
a:
b:
Returns :

gwy_data_field_correct_laplace_iteration ()

void        gwy_data_field_correct_laplace_iteration
                                            (GwyDataField *data_field,
                                             GwyDataField *mask_field,
                                             GwyDataField *buffer_field,
                                             gdouble *error,
                                             gdouble *corfactor);

Tries to remove all the points in mask off the data by using iterative method similar to solving heat flux equation. Use this function repeatedly until reasonable error is reached.

data_field: data field to be corrected
mask_field: mask of places to be corrected
buffer_field: initialized to same size aa mask and data
error: maximum change within last step
corfactor: correction factor within step.

gwy_data_field_correct_average ()

void        gwy_data_field_correct_average  (GwyDataField *data_field,
                                             GwyDataField *mask_field);

Function simply puts average value of all the data_field into points in data_field lying under points where mask_field values are nonzero.

data_field: data field
mask_field: mask to be used for changes

gwy_data_field_mask_outliers ()

void        gwy_data_field_mask_outliers    (GwyDataField *data_field,
                                             GwyDataField *mask_field,
                                             gdouble thresh);

Creates mask of data that are above or below thresh*sigma from average height. Sigma denotes root-mean square deviation of heights. This criterium corresponds to usual Gaussian distribution outliers detection for thresh = 3.

data_field: data field
mask_field: mask to be changed
thresh: threshold value