30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# Grain Edge
|
|
|
|
Detect grain boundaries from a binary grain mask. Outputs a mask of pixels at grain/non-grain borders using 4-neighbour connectivity. Width controls the boundary thickness in pixels. Equivalent to Gwyddion's grain_edge.c module.
|
|
|
|
## Inputs
|
|
|
|
| Name | Type | Required | Description |
|
|
|------|------|----------|-------------|
|
|
| field | DATA_FIELD | Yes | Input height field (used for dimension reference) |
|
|
| mask | IMAGE | Yes | Binary grain mask (white = grain) |
|
|
|
|
## Outputs
|
|
|
|
| Name | Type | Description |
|
|
|------|------|-------------|
|
|
| edge_mask | IMAGE | Binary mask with grain boundary pixels marked |
|
|
|
|
## Controls
|
|
|
|
| Name | Type | Default | Description |
|
|
|------|------|---------|-------------|
|
|
| width | INT | 1 | Boundary thickness in pixels; values greater than 1 dilate the edge outward (1-10) |
|
|
|
|
## Notes
|
|
|
|
- A grain pixel is on the boundary if at least one of its 4-connected neighbours (up, down, left, right) is not a grain pixel.
|
|
- When width > 1, the boundary is expanded using binary dilation with a square structuring element of size (2*width - 1).
|
|
- Dilation is masked to stay within the original grain region, so boundaries never extend into non-grain areas.
|
|
- The field and mask must have the same pixel dimensions.
|