# Grain Filter Remove grains from a binary mask based on size and border contact. Equivalent to Gwyddion's grain_filter module (grain_filter.c). ## Inputs | Name | Type | Required | Description | |------|------|----------|-------------| | mask | IMAGE | Yes | Binary mask containing grain regions to filter | ## Outputs | Name | Type | Description | |------|------|-------------| | filtered_mask | IMAGE | Binary mask with unwanted grains removed | ## Controls | Name | Type | Default | Description | |------|------|---------|-------------| | min_area | INT | 10 | Discard grains with fewer pixels than this value (0 = no lower limit) | | max_area | INT | 0 | Discard grains with more pixels than this value (0 = no upper limit) | | remove_border | BOOLEAN | False | Discard any grain that touches the image edge | ## Notes - Grain detection uses 4-connected or 8-connected labeling; the exact connectivity is determined by the implementation. - min_area and max_area are in pixels, not physical units.