There are several grainrelated algorithms implemented in Gwyddion. First
of all, simple thresholding algorithms can be used (height, slope or
curvature thresholding). These procedures can be very efficient namely
within particle analysis (to mark particles located on flat surface).
Thresholding methods can be accessed within Gwyddion as
→ → .
Height, slope and curvature thresholding is implemented within this module.
The results of each individual thresholding methods can be merged together
using several operators.
The automated Otsu's thresholding method is available as
→ → .
This method classifies the data values into two classes, minimising the
intraclass variances within both. It is most suitable for images that
contain two relatively well defined value levels.
Another grain marking function,
→ → ,
is based on edge detection (local curvature). The image is processed with
a differenceofGaussians filter of a given size and thresholding is then
performed on this filtered image instead of the original.
Grains that touch image eges can be removed using
→ → menu choice.
This is useful if such grains are considered incomplete and must be
excluded from analysis. Several other other functions that may be useful
for modification of grain shapes after marking are performed by the
Mask Editor tool.
Watershed
For more complicated data structures the effectiveness of thresholding
algorithms can be very poor. For these data a watershed
algorithm can be used more effectively for grain or particle
marking.
The watershed algorithm is usually employed for local minima
determination and image segmentation in image processing. As the problem
of determining the grain positions can be understood as the problem of
finding local extremes on the surface this algorithm can be used also for
purposes of grain segmentation or marking. For convenience in the
following we will treat the data inverted in the
z direction while describing the algorithm
(i.e. the grain tops are forming local minima in the following text). We
applied two stages of the grain analysis
(see [1]):

Grain location phase: At each point of the inverted surface the virtual water drop was
placed (amount of water is controlled by parameter Drop size). In the case that the drop was not already in a local minimum it
followed the steepest descent path to minimize its potential energy. As
soon as the drop reached any local minimum it stopped here and rested
on the surface. In this way it filled the local minimum partially by
its volume (see figure below and its caption). This process was
repeated several times (parameter Number of steps). As the result a system of lakes of different
sizes filling the inverted surface depressions was obtained. Then the
area of each of the lakes was evaluated and the smallest lakes are
removed under assumption that they were formed in the local minima
originated by noise (all lakes smaller than parameter Threshold are removed). The larger lakes were used to identify the
positions of the grains for segmentation in the next step. In this way the noise in the AFM data was
eliminated. As a result

Segmentation phase: The grains found in the step 1 were marked (each one by a different
number). The water drops continued in falling to the surface and
filling the local minima (amount of water is controlled by parameter Drop size).
Total number of steps of sphlashing a drop at every surface position is controlled by parameter Number of steps.
As the grains were already identified and
marked after the first step, the next five situations could happen as
soon as the drop reached a local minimum.

The drop reached the place previously marked as a concrete grain.
In this case the drop was merged with the grain, i. e. it was
marked as a part of the same grain.

The drop reached the place where no grain was found but a concrete
grain was found in the closest neighbourhood of the drop. In this
case the drop was merged with the grain again.

The drop reached the place where no grain was found and no grain
was found even in the closest neighbourhood of the drop. In that
case the drop was not marked at all.

The drop reached the place where no grain was found but more than
one concrete grain was found in the closest neighbourhood (e. g.
two different grains were found in the neighbourhood). In this case
the drop was marked as the grain boundary.

The drop reached the place marked as grain boundary. In this case
the drop was marked as the grain boundary too.
In this way we can identify the grain positions and then determine the
volume occupied by each grain separately. If features of interest are valleys rather than
grains (hills),
parameter Invert height can be used.
Grain properties can be studied using several functions. The simplest of
them is Grain Statistics
→ →
This function calculates the total number of marked grains, their total
projected area, both as an absolute value and as a fraction of total
data field area, total grain volumes, total length of grain boundaries
and the mean area and equivalent square size of one grain. The mean
size is calculated by averaging the equivalent square sides so its
square is not, in general, equal to the mean area.
Overall characteristics of the marked area can be also obtained with
Statistical Quantities tool when its Use mask
option is switched on. By inverting the mask the same information
can be obtained also for the nongrain area.
Grain Distributions
→ →
Grain Distributions is the most powerful and complex tool. It has two
basic modes of operation: graph plotting and raw data export. In
graph plotting mode selected characteristics of individual grains are
calculated, gathered and summary graphs showing their distributions
are plotted.
Raw data export is useful for experts who need for example to
correlate properties of individual grains. In this mode selected
grain characteristics are calculated and dumped to a text file table
where each row corresponds to one grain and columns correspond to
requested quantities. The order of the colums is the same as the
relative order of the quantities in the dialog; all values are
written in base SI units, as is usual in
Gwyddion.
Grain Property Correlation
→ →
Grain correlation plots a graph of one selected graph quantity as
the function of another grain quantity, visualizing correlations
between them.
Grain Measurement Tool
The grain measurement tool is the interactive method to obtain the
same information about individual grains as
Grain Distributions in raw
mode. After selecting a grain on the data window with mouse, all
the available quantities are displayed in the tool window.
Beside physical characteristics this tool also displays the grain
number. Grain numbers corresponds to row numbers (counting from 1)
in files exported by
Grain Distributions.
Grain Distributions
and Grain measurement tool
can calculate the following grain properties:
 Valuerelated properties
 Minimum,
the minimum value (height) occuring inside the grain.
 Maximum,
the maximum value (height) occuring inside the grain.
 Mean,
the mean of all values occuring inside the grain, that is the
mean grain height.
 Median
the median of all values occuring inside the grain, that is the
median grain height.
 Minimum on boundary,
the minimum value (height) occuring on the inner grain boundary.
This means within the set of pixels that lie inside the grain
but at least one of their neighbours lies outside.
 Maximum on boundary,
the maximum value (height) occuring on the inner grain boundary,
defined similarly to the minimum.
 Arearelated properties
 Projected area,
the projected (flat) area of the grain.
 Equivalent square side,
the side of the square with the same projected area as the
grain.
 Equivalent disc radius,
the radius of the disc with the same projected area as the
grain.
 Surface area,
the surface area of the grain, see
statistical
quantities section for description of the surface area
estimation method.
 Area of convex hull,
the projected area of grain convex hull. The convex hull area is
slightly larger than the grain area even for grains that appear
to be fairly convex due to pixelization of the mask. The only
grains with exactly the same area as their convex hulls are
perfectly rectangular grains.
 Boundaryrelated properties
 Projected boundary length,
the length of the grain boundary projected to the horizontal
plane (that is not taken on the real threedimensional
surface). The method of boundary length estimation is
described below.
 Minimum bounding size,
the minimum dimension of the grain in the horizontal plane. It
can be visualized as the minimum width of a gap in the
horizontal plane the grain could pass through.
 Minimum bounding direction,
the direction of the gap from the previous item. If the grain
exhibits a symmetry that makes several directions to qualify,
an arbitrary direction is chosen.
 Maximum bounding size,
the maximum dimension of the grain in the horizontal plane. It
can be visualized as the maximum width of a gap in the
horizontal plane the grain could fill up.
 Maximum bounding direction,
the direction of the gap from the previous item. If the grain
exhibits a symmetry that makes several directions to qualify,
an arbitrary direction is chosen.
 Maximum inscribed disc radius,
the radius of maximum disc that fits inside the grain.
The entire full disc must fit, not just its boundary circle,
which matters for grains with voids within. You can use
Mask Editor tool to
fill voids in grains to get rid of voids.
 Maximum inscribed disc center x position,
the horizontal coordinate of center of the maximum inscribed
disc. More precisely, of one such disc if it is not unique.
 Maximum inscribed disc center y position,
the vertical coordinate of center of the maximum inscribed
disc. More precisely, of one such disc if it is not unique but
of the same as in the previous item.
 Minimum circumcircle radius,
the radius of minimum circle that contains the grain.
 Minimum circumcircle center x position,
the horizontal coordinate of center of the minimum
circumcircle.
 Minimum circumcircle center y position,
the vertical coordinate of center of the minimum
circumcircle.
 Mean radius,
the mean distance from grain center of mass to its boundary.
This quantity is mostly meaningful only for convex or
nearlyconvex grains.
 Volumerelated properties
 Zero basis,
the volume between grain surface and the plane
z = 0.
Values below zero form negative volumes. The zero level must be
set to a reasonable value (often
Fix Zero is sufficient) for
the results to make sense, which is also the advantage of
this method: one can use basis plane of his choice.
 Grain minimum basis,
the volume between grain surface and the plane
z = z_{min}, where
z_{min} is the minimum value (height)
occuring in the grain. This method accounts for grain
surrounding but it typically underestimates the volume,
especially for small grains.
 Laplacian backround basis,
the volume between grain surface and the basis surface formed
by laplacian interpolation of surrounding values. In other
words, this is the volume that would disappear after using
Remove Data Under Mask
or
Grain Remover tool
with Laplacian interpolation on the grain. This is the most
sophisticated method, on the other hand it is the hardest to
develop intuition for.
 Positionrelated properties
 Center x position,
the horizontal coordinate of the grain center. Since the
grain area is defined as the area covered by the
corresponding mask pixels, the center of a singlepixel grain
has halfinteger coordinates, not integer ones. Data field
origin offset (if any) is taken into account.
 Center y position,
the vertical coordinate of the grain center. See above for
the interpretation.
 Sloperelated properties
 Inclination θ,
the deviation of the normal to the mean plane from the
zaxis,
see inclinations
for details.
 Inclination φ,
the azimuth of the slope, as defined in
inclinations.
 Curvaturerelated properties
 Curvature center x,
the horizontal position of the center of the quadratic surface
fitted to the grain surface.
 Curvature center y,
the vertical position of the center of the quadratic surface
fitted to the grain surface.
 Curvature center z,
the value at the center of the quadratic surface fitted to the
grain surface. Note this is the value at the fitted surface,
not at the real grain surface.
 Curvature 1,
the smaller curvature (i.e. the inverse of the curvature radius)
at the center.
 Curvature 2,
the larger curvature (i.e. the inverse of the curvature radius)
at the center.
 Curvature angle 1,
the direction corresponding to Curvature 1.
 Curvature angle 2,
the direction corresponding to Curvature 2.
 Momentrelated properties
 Major semiaxis of equivalent ellipse,
the length of the major semiaxis of an ellipse which has the
same second order moments in the horizontal plane.
 Minor semiaxis of equivalent ellipse,
the length of the minor semiaxis of an ellipse which has the
same second order moments in the horizontal plane.
 Orientation of equivalent ellipse,
the direction of the major semiaxis of an ellipse which has the
same second order moments in the horizontal plane. For
a circular grain, the angle is set to zero by definition.
The grain boundary length is estimated by summing estimated contributions
of each fourpixel configuration on the boundary. The contributions
are displayed on the following figure for each type of configuration,
where h_{x} and
h_{y} are pixel dimension along corresponding
axes and h is the length of the pixel
diagonal:
The contributions correspond onetoone to lengths of segments of the
boundary of a polygon approximating the grain shape. The construction of
the equivalent polygonal shape can also be seen in the figure.
The grain volume is, after subtracting the basis, estimated as the
volume of exactly the same body whose upper surface is used for
surface area calculation.
Note for the volume between vertices this is equivalent to the classic
twodimensional trapezoid integration method. However, we calculate the
volume under a mask centered on vertices, therefore their contribution
to the integral is distributed differently as shown in the following
figure.
Curvaturerelated properties of individual grains are calculated
identically to the global curvature calculated by
Curvature. See its description for
some discussion.
Inscribed discs and circumcircles of grains can be visualized using
→ →
and
→ → .
These functions create circular selections representing the
corresponding disc or circle for each grain that can be subsequently
displayed using Selection
Manager tool.
Grain Filtering
Marked grains can be filtered by thresholding by any of the
available grain quantities using
→ → menu choice.
The module can be used for basic operations, such as removal of tiny
grains using a pixel area threshold, as well as complex filtering using
logical expressions involving several grain quantitities.
The filter retains grains that satisfy the condition specified as
Keep grains satisfying and removes all other
grains. The condition is expressed as a logical expression of one to
three individual thresholding conditions, denoted A
,
B
and C
. The simplest expression
is just A
, stating that quantity
A
must lie within given thresholds.
Each condition consits of lower and upper thresholds for one grain
quantity, for instance pixel area or minimum value. The values must
lie within the interval [lower,upper] to satisfy the condition and thus
retain the grains. Note it is possible to choose the lower threshold
larger than the upper threshold. In this case the condition is
inverted, i.e. the grain is retained if the value lies outside
[upper,lower].
Individual grain quantities are assigned to A
,
B
and C
by selecting the
quantity in the list and clicking on the corresponding button in
Set selected as. The currently selected set of
quantities is displayed in the
Condition A,
Condition B and
Condition C headers.
Grains can be aligned vertically using
→ → .
This function vertically shifts each grain to make a certain
heightrelated quantity of all grains equal. Typically, the grain
minimum values are aligned but other choices are possible.
Data between grains are also vertically shifted. The shifts are
interpolated from the grain shifts using the Laplace equation, leading
to a smooth transition of the shifts between the grains (though with no
regard to other possible surface features).
Euclidean Distance Transform
The Euclidean distance transform assigns to each pixel its distance to
the grain (mask) boundary. It is, in a certain sense, complementary to
the watershed.
If it is applied to grain interiors the distance is zero outside grains
and increases towards the grain ‘centres’. Conversely, it can be
applied to the exteriors and it is then highest for pixels farthest
from any grain. It is also possible to calculate signed twoside
transform which is the difference of the two transforms, i.e. it is
positive inside grains and negative outside.
Option Shrink from border controls the handling of
borders. When it is enabled, image boundaries are considerd to be
also grain (or nongrain) boundaries. Pixels on the image edge thus
cannot receive large values. When it is disabled, the grains (or
nongrains) are effectively infinitely large outside the image.
So pixels close to the boundary can receive large distance values.