A method of grainBoundary.
the boundary with the vertices dropped that carry no shape, Douglas-Peucker chain by chain; MATLAB’s grainBoundary.simplify
Syntax
gB = gB.simplify()
The pixel staircase straightened.
gB = gB.simplify(0.5)
A tolerance of 0.5 map units.
gB = gB.simplify(protect=vertexIds)
These vertices kept as well.
gB = gB.simplify(keepGrains=grains.id)
No grain of the list collapsed.
Description
A vertex is dropped when leaving it out moves the boundary by less than epsilon, so many vertices go along a straight run and none at a corner; on a pixel grid this turns a staircase into the straight line it approximates. The junctions, the ends of the chains, always stay, so which grains touch, and where, is unchanged; a closed chain keeps at least three vertices. The dropped vertices’ segments are merged as by reduce.
The default tolerance is the median segment length over sqrt(2): a staircase of spacing d never strays further than d / sqrt(2) from the line it approximates, the worst case being a boundary at 45 degree, so it removes the grid and nothing else.
Input
gB |
grainBoundary |
Keywords
| keyword | default | description |
|---|---|---|
epsilon |
None |
the tolerance in the units of the map, how far the boundary may move; 0 leaves the boundary as it is, by default the median segment length over sqrt(2) |
protect |
None |
the ids of the vertices that must stay, on top of the junctions |
keepGrains |
None |
the ids of the grains that must keep a polygon: a grain smaller than epsilon would lose all its vertices and is not coarsened at all; MATLAB does this for every grain, grain2d.simplifyBoundary passes all of them |
Output
gB |
grainBoundary, the simplified boundary |
See also
grainBoundary.reduce, grainBoundary.refine, grain2d.simplifyBoundary, smoothBoundary
MATLAB’s grainBoundary.simplify
source
Citing this page.
This page is part of the documentation of
MTEX, a free and open
source MATLAB toolbox for analyzing and modeling crystallographic textures.
It was written by The MTEX Developers and is published at
https://mtex-toolbox.github.io/grainBoundary.simplify_py.html.
If you use MTEX, or reuse text or figures from this page, in your research,
please cite
F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63
BibTeX
@article{bachmann2010mtex,
author = {F. Bachmann and R. Hielscher and H. Schaeben},
title = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
journal = {Solid State Phenomena},
volume = {160},
pages = {63-68},
year = {2010},
doi = {10.4028/www.scientific.net/SSP.160.63},
url = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}
Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.