![]() | ![]() | ![]() | Gwyddion Data Processing Library Reference Manual | ![]() |
---|
GwyDataField — array representing 2D data
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); gdouble gwy_data_field_area_get_max (GwyDataField *dfield, gint col, gint row, gint width, gint height); gdouble gwy_data_field_area_get_min (GwyDataField *dfield, gint col, gint row, gint width, gint height); gdouble gwy_data_field_area_get_avg (GwyDataField *dfield, gint col, gint row, gint width, gint height); gdouble gwy_data_field_area_get_rms (GwyDataField *dfield, gint col, gint row, gint width, gint height); gdouble gwy_data_field_area_get_sum (GwyDataField *dfield, gint col, gint row, gint width, gint height); gdouble gwy_data_field_area_get_surface_area (GwyDataField *dfield, gint col, gint row, gint width, gint height, 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); gboolean gwy_data_field_get_data_line_averaged (GwyDataField *a, GwyDataLine *b, gint ulcol, gint ulrow, gint brcol, gint brrow, gint res, gint thickness, 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_area_fit_plane (GwyDataField *dfield, gint col, gint row, gint width, gint height, gdouble *pa, gdouble *pbx, gdouble *pby); 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); void gwy_data_field_area_get_stats (GwyDataField *dfield, gint col, gint row, gint width, gint height, 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_crosscorrelate (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_crosscorrelate_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_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);
GObject +----GwyDataField
GwyDataField implements GwySerializable and GwyWatchable.
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.
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.
typedef enum { GWY_MERGE_UNION = 0, /*union of all found grains*/ GWY_MERGE_INTERSECTION = 1 /*intersection of grains found by different methods*/ } GwyMergeType;
GwyMergeType is deprecated and should not be used in newly-written code.
Mask processing merging (namely used in grain processing).
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;
typedef enum { GWY_COMP_INIT = 0, /*start initializations*/ GWY_COMP_ITERATE = 1, /*locate steps*/ GWY_COMP_FINISHED = 2 } GwyComputationStateType;
typedef enum { GWY_FRACTAL_PARTITIONING = 0, GWY_FRACTAL_CUBECOUNTING = 1, GWY_FRACTAL_TRIANGULATION = 2, GWY_FRACTAL_PSDF = 3 } GwyFractalType;
GwyFractalType is deprecated and should not be used in newly-written code.
typedef struct { GwyWatershedStateType state; gint internal_i; GwyDataField *min; GwyDataField *water; GwyDataField *mark_dfield; gint fraction; GString *description; } GwyWatershedStatus;
GObject* gwy_data_field_new (gint xres, gint yres, gdouble xreal, gdouble yreal, gboolean nullme);
xres: | |
yres: | |
xreal: | |
yreal: | |
nullme: | |
Returns : |
void gwy_data_field_alloc (GwyDataField *a, gint xres, gint yres);
gwy_data_field_alloc is deprecated and should not be used in newly-written code.
Allocates GwyDataField.
Note this function doesn't create an object, just allocates some fields, it doesn't make a usable in functions expecting a datafield. There is NO function to safely free it later.
In other words, don't use it, it appeared in the public API by mistake.
a: | pointer to data field structure to be allocated. |
xres: | X resolution |
yres: | Y resolution |
void gwy_data_field_initialize (GwyDataField *a, gint xres, gint yres, gdouble xreal, gdouble yreal, gboolean nullme);
gwy_data_field_initialize is deprecated and should not be used in newly-written code.
Allocates and initializes GwyDataField.
Note this function doesn't create an object, just allocates some fields, it doesn't make a usable in functions expecting a datafield. There is NO function to safely free it later.
In other words, don't use it, it appeared in the public API by mistake.
a: | A data field structure 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 |
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 |
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 on success. |
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 : |
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). |
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]. |
gint gwy_data_field_get_xres (GwyDataField *a);
Get X resolution of the field.
a: | A data field |
Returns : | X resolution |
gint gwy_data_field_get_yres (GwyDataField *a);
Get Y resolution of the field.
a: | A data field |
Returns : | Y resolution |
gdouble gwy_data_field_get_xreal (GwyDataField *a);
Get the X real size value
a: | A data field |
Returns : | X real size value |
gdouble gwy_data_field_get_yreal (GwyDataField *a);
Get the Y real size value
a: | A data field |
Returns : | Y real size value |
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 |
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 |
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 |
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 |
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 |
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 |
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. |
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. |
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 |
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 |
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 |
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 |
gboolean gwy_data_field_outside (GwyDataField *a, gint col, gint row);
a: | |
col: | |
row: | |
Returns : |
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) |
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 |
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). |
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 |
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 |
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? |
void gwy_data_field_fill (GwyDataField *a, gdouble value);
Fill GwyDataField with given value
a: | A data field |
value: | value to be entered |
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 |
void gwy_data_field_add (GwyDataField *a, gdouble value);
Add given value to GwyDataField
a: | A data field |
value: | value to be added |
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 |
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 |
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 |
gdouble gwy_data_field_get_max (GwyDataField *a);
Get maximum value of the GwyDataField.
a: | A data field |
Returns : | maximum value of the GwyDataField |
gdouble gwy_data_field_get_min (GwyDataField *a);
Get minimum value of the GwyDataField
a: | A data field |
Returns : | minimum value of the GwyDataField |
gdouble gwy_data_field_get_avg (GwyDataField *a);
Averages values of GwyDataField
a: | A data field |
Returns : | Average value of GwyDataField |
gdouble gwy_data_field_get_rms (GwyDataField *a);
Evaluates Root mean square value of GwyDataField
a: | A data field |
Returns : | RMS of GwyDataField |
gdouble gwy_data_field_get_sum (GwyDataField *a);
Sum all the values in GwyDataField
a: | A data field |
Returns : | sum of GwyDataField. |
gdouble gwy_data_field_get_surface_area (GwyDataField *a, GwyInterpolationType interpolation);
Computes surface area.
a: | data field |
interpolation: | interpolation method |
Returns : | surface area |
gdouble gwy_data_field_get_area_max (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow);
gwy_data_field_get_area_max is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
Returns : |
gdouble gwy_data_field_get_area_min (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow);
gwy_data_field_get_area_min is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
Returns : |
gdouble gwy_data_field_get_area_avg (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow);
gwy_data_field_get_area_avg is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
Returns : |
gdouble gwy_data_field_get_area_rms (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow);
gwy_data_field_get_area_rms is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
Returns : |
gdouble gwy_data_field_get_area_sum (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow);
gwy_data_field_get_area_sum is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
Returns : |
gdouble gwy_data_field_get_area_surface_area (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow, GwyInterpolationType interpolation);
gwy_data_field_get_area_surface_area is deprecated and should not be used in newly-written code.
a: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
interpolation: | |
Returns : |
gdouble gwy_data_field_area_get_max (GwyDataField *dfield, gint col, gint row, gint width, gint height);
Finds maximum value in a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
Returns : | The maximum value, and undefined value (currently -G_MAXDOUBLE) for zero width or height. |
Since 1.2:
gdouble gwy_data_field_area_get_min (GwyDataField *dfield, gint col, gint row, gint width, gint height);
Finds minimum value in a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
Returns : | The minimum value, and undefined value (currently G_MAXDOUBLE) for zero width or height. Since 1.2. |
gdouble gwy_data_field_area_get_avg (GwyDataField *dfield, gint col, gint row, gint width, gint height);
Averages values of a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
Returns : | The average value. Since 1.2. |
gdouble gwy_data_field_area_get_rms (GwyDataField *dfield, gint col, gint row, gint width, gint height);
Computes root mean square value of a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
Returns : | The root mean square value. |
Since 1.2.
gdouble gwy_data_field_area_get_sum (GwyDataField *dfield, gint col, gint row, gint width, gint height);
Sums values of a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
Returns : | The value sum. Since 1.2. |
gdouble gwy_data_field_area_get_surface_area (GwyDataField *dfield, gint col, gint row, gint width, gint height, GwyInterpolationType interpolation);
Computes surface area of a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
interpolation: | Interpolation method. |
Returns : | The surface area. Since 1.2. |
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. |
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 : |
gint gwy_data_field_clamp (GwyDataField *a, gdouble bottom, gdouble top);
Limits data field values to the range [bottom, top].
a: | A data field |
bottom: | Lower limit value. |
top: | Upper limit value. |
Returns : | The number of changed values. |
gint gwy_data_field_area_clamp (GwyDataField *a, gint ulcol, gint ulrow, gint brcol, gint brrow, gdouble bottom, gdouble top);
Limits values in a rectangular part of a data field to the range [bottom, top].
a: | A data field |
ulcol: | Upper-left column coordinate (inclusive). |
ulrow: | Upper-left row coordinate (inclusive). |
brcol: | Bottom-right column coordinate (exclusive). |
brrow: | Bottom-right row coordinate (exclusive). |
bottom: | Lower limit value. |
top: | Upper limit value. |
Returns : | The number of changed values. |
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 |
gboolean gwy_data_field_get_data_line_averaged (GwyDataField *a, GwyDataLine *b, gint ulcol, gint ulrow, gint brcol, gint brrow, gint res, gint thickness, GwyInterpolationType interpolation);
Extracts an averaged 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 |
thickness: | thickness of line to be averaged |
interpolation: | interpolation type |
Returns : | true at success Since 1.2 |
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 |
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 |
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 |
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 |
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 |
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 |
void gwy_data_field_area_fit_plane (GwyDataField *dfield, gint col, gint row, gint width, gint height, gdouble *pa, gdouble *pbx, gdouble *pby);
Fits a plane through a rectangular part of a data field.
dfield: | A data field |
col: | Upper-left column coordinate. |
row: | Upper-left row coordinate. |
width: | Area width (number of columns). |
height: | Area height (number of rows). |
pa: | Where constant coefficient should be stored (or NULL). |
pbx: | Where x plane coefficient should be stored (or NULL). |
pby: | Where y plane coefficient should be stored (or NULL). |
Since 1.2.
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 |
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 |
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 |
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 |
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 |
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 |
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. |
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 |
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 |
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 |
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 |
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 |
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 |
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: |
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 |
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 |
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) |
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);
gwy_data_field_get_area_stats is deprecated and should not be used in newly-written code.
data_field: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
avg: | |
ra: | |
rms: | |
skew: | |
kurtosis: |
void gwy_data_field_area_get_stats (GwyDataField *dfield, gint col, gint row, gint width, gint height, gdouble *avg, gdouble *ra, gdouble *rms, gdouble *skew, gdouble *kurtosis);
dfield: | |
col: | |
row: | |
width: | |
height: | |
avg: | |
ra: | |
rms: | |
skew: | |
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);
data_field: | |
target_line: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
type: | |
orientation: | |
interpolation: | |
windowing: | |
nstats: | |
Returns : |
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: |
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: |
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: |
void gwy_data_field_filter_laplacian (GwyDataField *data_field, gint ulcol, gint ulrow, gint brcol, gint brrow);
data_field: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: |
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: |
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: |
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: |
void gwy_data_field_grains_mark_local_maxima (GwyDataField *data_field, GwyDataField *grain_field);
data_field: | |
grain_field: |
void gwy_data_field_grains_mark_height (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint dir);
data_field: | |
grain_field: | |
threshval: | |
dir: |
void gwy_data_field_grains_mark_slope (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint dir);
data_field: | |
grain_field: | |
threshval: | |
dir: |
void gwy_data_field_grains_mark_curvature (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint dir);
data_field: | |
grain_field: | |
threshval: | |
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);
data_field: | |
grain_field: | |
locate_steps: | |
locate_thresh: | |
locate_dropsize: | |
wshed_steps: | |
wshed_dropsize: | |
prefilter: | |
dir: |
void gwy_data_field_grains_remove_manually (GwyDataField *grain_field, gint i);
grain_field: | |
i: |
void gwy_data_field_grains_remove_by_size (GwyDataField *grain_field, gint size);
grain_field: | |
size: |
void gwy_data_field_grains_remove_by_height (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint direction);
data_field: | |
grain_field: | |
threshval: | |
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);
data_field: | |
grain_field: | |
status: | |
locate_steps: | |
locate_thresh: | |
locate_dropsize: | |
wshed_steps: | |
wshed_dropsize: | |
prefilter: | |
dir: |
gdouble gwy_data_field_grains_get_average (GwyDataField *grain_field);
grain_field: | |
Returns : |
void gwy_data_field_grains_get_distribution (GwyDataField *grain_field, GwyDataLine *distribution);
grain_field: | |
distribution: |
void gwy_data_field_grains_add (GwyDataField *grain_field, GwyDataField *add_field);
grain_field: | |
add_field: |
void gwy_data_field_grains_intersect (GwyDataField *grain_field, GwyDataField *intersect_field);
grain_field: | |
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);
data_field: | |
ulcol: | |
ulrow: | |
brcol: | |
brrow: | |
fit_type: | |
exclude: | |
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);
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. |
void gwy_data_field_crosscorrelate (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);
Algorithm 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 |
Since 1.2.
void gwy_data_field_crosscorrelate_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);
Algorithm 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) |
Since 1.2.
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);
gwy_data_field_croscorrelate is deprecated and should not be used in newly-written code.
data_field1: | |
data_field2: | |
x_dist: | |
y_dist: | |
score: | |
search_width: | |
search_height: | |
window_width: | |
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);
gwy_data_field_croscorrelate_iteration is deprecated and should not be used in newly-written code.
data_field1: | |
data_field2: | |
x_dist: | |
y_dist: | |
score: | |
search_width: | |
search_height: | |
window_width: | |
window_height: | |
state: | |
iteration: |
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 |
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 |
void gwy_data_field_fractal_partitioning (GwyDataField *data_field, GwyDataLine *xresult, GwyDataLine *yresult, GwyInterpolationType interpolation);
data_field: | |
xresult: | |
yresult: | |
interpolation: |
void gwy_data_field_fractal_cubecounting (GwyDataField *data_field, GwyDataLine *xresult, GwyDataLine *yresult, GwyInterpolationType interpolation);
data_field: | |
xresult: | |
yresult: | |
interpolation: |
void gwy_data_field_fractal_triangulation (GwyDataField *data_field, GwyDataLine *xresult, GwyDataLine *yresult, GwyInterpolationType interpolation);
data_field: | |
xresult: | |
yresult: | |
interpolation: |
void gwy_data_field_fractal_psdf (GwyDataField *data_field, GwyDataLine *xresult, GwyDataLine *yresult, GwyInterpolationType interpolation);
data_field: | |
xresult: | |
yresult: | |
interpolation: |
gdouble gwy_data_field_fractal_cubecounting_dim (GwyDataLine *xresult, GwyDataLine *yresult, gdouble *a, gdouble *b);
xresult: | |
yresult: | |
a: | |
b: | |
Returns : |
gdouble gwy_data_field_fractal_triangulation_dim (GwyDataLine *xresult, GwyDataLine *yresult, gdouble *a, gdouble *b);
xresult: | |
yresult: | |
a: | |
b: | |
Returns : |
gdouble gwy_data_field_fractal_partitioning_dim (GwyDataLine *xresult, GwyDataLine *yresult, gdouble *a, gdouble *b);
xresult: | |
yresult: | |
a: | |
b: | |
Returns : |
gdouble gwy_data_field_fractal_psdf_dim (GwyDataLine *xresult, GwyDataLine *yresult, gdouble *a, gdouble *b);
xresult: | |
yresult: | |
a: | |
b: | |
Returns : |
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. |
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 |
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 |
<< GwyDataLine | interpolation >> |