![]() |
![]() |
Gwyddion Data Processing Library Reference Manual | ![]() |
|
---|---|---|---|---|
enum GwyMergeType; enum GwyWatershedStateType; GwyWatershedStatus; void gwy_data_field_grains_mark_curvature (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint below); 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 below); void gwy_data_field_grains_remove_manually (GwyDataField *grain_field, gint i); gboolean gwy_data_field_grains_remove_grain (GwyDataField *grain_field, gint col, gint row); gboolean gwy_data_field_grains_extract_grain (GwyDataField *grain_field, gint col, gint row); 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 below); 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 below); 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 below); void gwy_data_field_grains_mark_slope (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint below); 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_get_size_distribution (GwyDataField *grain_field, GwyDataLine *distribution); void gwy_data_field_grains_get_height_distribution (GwyDataField *data_field, 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); gint gwy_data_field_number_grains (GwyDataField *mask_field, gint *grains);
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).
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 struct { GwyWatershedStateType state; gint internal_i; GwyDataField *min; GwyDataField *water; GwyDataField *mark_dfield; gint fraction; GString *description; } GwyWatershedStatus;
void gwy_data_field_grains_mark_curvature (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint below);
Marks data that are above/below curvature threshold.
data_field : |
Data to be used for marking. |
grain_field : |
Data field to store the resulting mask to. |
threshval : |
Relative curvature threshold, in percents. |
below : |
If TRUE , data below threshold are marked, otherwise data above
threshold are marked.
|
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 below);
Performs watershed algorithm.
data_field : |
Data to be used for marking. |
grain_field : |
Result of marking (mask). |
locate_steps : |
Locating algorithm steps. |
locate_thresh : |
Locating algorithm threshold. |
locate_dropsize : |
Locating drop size. |
wshed_steps : |
Watershed steps. |
wshed_dropsize : |
Watershed drop size. |
prefilter : |
Use prefiltering. |
below : |
If TRUE , valleys are marked, otherwise mountains are marked.
|
void gwy_data_field_grains_remove_manually (GwyDataField *grain_field, gint i);
gwy_data_field_grains_remove_manually
is deprecated and should not be used in newly-written code.
Removes one grain at given position.
grain_field : |
Field of marked grains (mask) |
i : |
Position of requested grain removal |
gboolean gwy_data_field_grains_remove_grain (GwyDataField *grain_field, gint col, gint row);
Removes one grain at given position.
grain_field : |
Field of marked grains (mask). |
col : |
Column inside a grain. |
row : |
Row inside a grain. |
Returns : | TRUE if a grain was actually removed (i.e., (col ,row ) was
inside a grain).
|
Since 1.7
gboolean gwy_data_field_grains_extract_grain (GwyDataField *grain_field, gint col, gint row);
Removes all grains except that one at given position.
If there is no grain at (col
, row
), all grains are removed.
grain_field : |
Field of marked grains (mask). |
col : |
Column inside a grain. |
row : |
Row inside a grain. |
Returns : | TRUE if a grain remained (i.e., (col ,row ) was inside a grain).
|
Since 1.8
void gwy_data_field_grains_remove_by_size (GwyDataField *grain_field, gint size);
Removes all grain below specified area.
grain_field : |
Field of marked grains (mask). |
size : |
Grain area threshold, in square pixels. |
void gwy_data_field_grains_remove_by_height (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint below);
Removes grains that are higher/lower than given threshold value.
data_field : |
Data to be used for marking |
grain_field : |
Field of marked grains (mask) |
threshval : |
Relative height threshold, in percents. |
below : |
If TRUE , grains below threshold are removed, otherwise grains above
threshold are removed.
|
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 below);
Performs one iteration of the watershed algorithm.
data_field : |
Data to be used for marking. |
grain_field : |
Result of marking (mask). |
status : |
current status of the algorithm. |
locate_steps : |
Locating algorithm steps. |
locate_thresh : |
Locating algorithm threshold. |
locate_dropsize : |
Locating drop size. |
wshed_steps : |
Watershed steps. |
wshed_dropsize : |
Watershed drop size. |
prefilter : |
Use prefiltering. |
below : |
If TRUE , valleys are marked, otherwise mountains are marked.
|
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 below);
Marks data that are above/below height threshold.
data_field : |
Data to be used for marking. |
grain_field : |
Data field to store the resulting mask to. |
threshval : |
Relative height threshold, in percents. |
below : |
If TRUE , data below threshold are marked, otherwise data above
threshold are marked.
|
void gwy_data_field_grains_mark_slope (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint below);
Marks data that are above/below slope threshold.
data_field : |
Data to be used for marking. |
grain_field : |
Data field to store the resulting mask to. |
threshval : |
Relative slope threshold, in percents. |
below : |
If TRUE , data below threshold are marked, otherwise data above
threshold are marked.
|
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);
gwy_data_field_grains_get_distribution
is deprecated and should not be used in newly-written code.
Computes grain size distribution.
See and use gwy_data_field_grains_get_size_distribution()
.
grain_field : |
Data field of marked grains (mask). |
distribution : |
Grain size distribution. |
void gwy_data_field_grains_get_size_distribution (GwyDataField *grain_field, GwyDataLine *distribution);
Computes grain size distribution.
Puts number of grains vs. grain size (in real units) data into
distribution
. Grain size means grain side if it was square.
grain_field : |
Data field of marked grains (mask). |
distribution : |
Grain size distribution. |
Since 1.16
void gwy_data_field_grains_get_height_distribution (GwyDataField *data_field, GwyDataField *grain_field, GwyDataLine *distribution);
Computes grain height distribution.
Puts number of grains vs. grain height (in real units) data into
distribution
.
data_field : |
Data to be used for marking. |
grain_field : |
Data field of marked grains (mask). |
distribution : |
Grain height distribution. |
Since 1.16
void gwy_data_field_grains_add (GwyDataField *grain_field, GwyDataField *add_field);
Adds add_field
grains to grain_field
.
grain_field : |
Field of marked grains (mask). |
add_field : |
Field of marked grains (mask) to be added. |
void gwy_data_field_grains_intersect (GwyDataField *grain_field, GwyDataField *intersect_field);
Performs intersection betweet two grain fields,
result is stored in grain_field
.
grain_field : |
field of marked grains (mask). |
intersect_field : |
Field of marked grains (mask). |
gint gwy_data_field_number_grains (GwyDataField *mask_field, gint *grains);
mask_field : |
|
grains : |
|
Returns : |