![]() | ![]() | Gwyddion Data Processing Library Reference Manual | ![]() |
---|
grains — Grain detection and processing
enum GwyMergeType; enum GwyWatershedStateType; struct GwyWatershedStatus; 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); 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); 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);
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;
struct GwyWatershedStatus { GwyWatershedStateType state; gint internal_i; GwyDataField *min; GwyDataField *water; GwyDataField *mark_dfield; gint fraction; GString *description; };
void gwy_data_field_grains_mark_curvature (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint dir);
Marks data that are above/below curvature threshold depending on dir argument.
data_field : | data to be used for marking |
grain_field : | result of marking (mask) |
threshval : | curvature threshold |
dir : | marking direction |
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);
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 |
dir : | mark algorithm direction |
void gwy_data_field_grains_remove_manually (GwyDataField *grain_field, gint i);
Removes one grain at given position.
grain_field : | field of marked grains (mask) |
i : | position of requested grain removal |
void gwy_data_field_grains_remove_by_size (GwyDataField *grain_field, gint size);
Removes all grain below area size (in square pixels);
grain_field : | field of marked grains (mask) |
size : | size to be used as threshold |
void gwy_data_field_grains_remove_by_height (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint direction);
Thresolds grain that are higher/lower than given threshold value.
data_field : | data to be used for marking |
grain_field : | field of marked grains (mask) |
threshval : | height threshold |
direction : | threshold grains above/below given height |
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);
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 |
dir : | mark algorithm direction |
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);
Marks data that are above/below height threshold depending on dir argument.
data_field : | data to be used for marking |
grain_field : | result of marking (mask) |
threshval : | height threshold |
dir : | marking direction |
void gwy_data_field_grains_mark_slope (GwyDataField *data_field, GwyDataField *grain_field, gdouble threshval, gint dir);
Marks data that are above/below slope threshold depending on dir argument.
data_field : | data to be used for marking |
grain_field : | result of marking (mask) |
threshval : | slope threshold |
dir : | marking direction |
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);
Computes grain size distribution - plot of number of grains vs. grain area (in real units).
grain_field : | field of marked grains (mask) |
distribution : | grain size distribution |
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) |
<< fractals | inttrans >> |