smooth grain boundaries by a single variational solve
Description
Defines the smooth boundary as the minimizer of
|V - V0|^2 + alpha * |L V|^2where L is the normalized Laplacian of the boundary network, i.e. L V measures how far a vertex sits off the line through its neighbours. The first term keeps the result close to the measured boundary, the second one penalizes curvature, and alpha decides between them.
There is no iteration count. The minimizer is the solution of one sparse linear system, so the result depends on alpha alone and not on how long the algorithm was run. Junctions are eliminated from that system rather than penalized, so they stay exactly where they are.
alpha is not stated directly but through smoothingLength, a length in the units of the map. On a boundary sampled at spacing h the filter has gain 1/(1+4*alpha*sin(w/2)^4) at the spatial frequency w, so it damps the wavelength
Lambda = pi*h / asin((4*alpha)^(-1/4))to half amplitude. smoothingLength is that wavelength - detail finer than it is removed, detail coarser than it survives. Being a length, it means the same thing whatever step size the map was measured at. It cannot be shorter than 2*h, which is all the sampling can represent.
Syntax
grains = smoothBoundary(grains,curvatureFilter)F = curvatureFilter;
F.smoothingLength = 3; % in the units of the map
grains = smoothBoundary(grains,F)Class Properties
| smoothingLength | wavelength damped to half amplitude, in map units (default: 4 times the vertex spacing) |
| alpha | the regularization weight itself; set it to override smoothingLength |
See also
grain2d.smoothBoundary boundaryFilter laplaceFilter taubinFilter huberFilter
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/curvatureFilter.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.