Description
List cell counts for background components that do not touch the finite mask boundary.
A binary grid represents foreground as numeric one and background as zero. A stencil is a set of integer [rowOffset,columnOffset] positions relative to a cell. Connectivity describes allowed neighbor steps: four-neighbor connectivity uses orthogonal steps, while eight-neighbor connectivity also includes diagonals. Finite image borders and asymmetric stencils affect the result.
List cell counts for background components that do not touch the finite mask boundary.
When to use this tool
Use the hole inventory to count enclosed background regions and compare their cell sizes before filling.
How to use the tool and how it works
- Enter mask, eight using the definitions below.
- Run the operation. Resolve input-format errors before interpreting an output.
- Read result.holes, using the stated boundary, ordering, sign and absence conventions.
Label background components with the selected connectivity, discard those touching an outer row or column, and report the remaining component labels and cell counts.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| mask | Rectangular numeric 0/1 rows, up to 64×64; row is the first coordinate and column the second. | Dense numeric rows, each dimension at most 128; the stated shape rules also apply. |
| eight | True uses all eight adjacent neighbors; false uses only four orthogonal neighbors for the foreground/background component specified above. | Boolean true or false. |
| Output field | Interpretation |
|---|---|
| result | Object containing the fields below. |
| result.holes | Enclosed background component label and cell-count records, excluding boundary-connected components. |
{
"input": {
"mask": [
[
1,
1,
1
],
[
1,
0,
1
],
[
1,
1,
1
]
],
"eight": false
},
"output": {
"result": {
"holes": [
{
"label": 1,
"area": 1
}
]
}
}
} Limitations and assumptions
- Counts are numbers of grid cells, not physical area. Labels belong to the complete background labeling and need not be consecutive in the filtered hole list.
- Masks are rectangular dense arrays of numeric 0/1 cells, with at most 64 rows and 64 columns. Empty frames are allowed where no in-bounds seed is required. Stencils are nonempty lists of distinct integer [rowOffset,columnOffset] pairs, each coordinate between -16 and 16. Outside-frame samples are zero at every stage.
- Every declared outer field is required and unknown outer fields are rejected. Strings and JSON text have size limits, lists are bounded to 128 entries, and JSON nesting/node counts are bounded. Tighter operation-specific bounds stated above take precedence.
- Numeric outputs must remain finite and within safe-integer magnitude. Original record indexes and cell coordinates are zero-based; stated half-open ranges exclude their end.
Alternative or Complementary methods
Choose a component operation for connected regions and an explicit stencil for local shape tests. Fix connectivity and border policy before comparing masks; convert cell counts to physical area separately when pixel spacing is known.
References
Similar or alternative tools
- Binary Mask Enclosed Hole Fill
Fill enclosed background components under the chosen connectivity while retaining the original foreground.
- Binary Mask Boundary Connected Background Mask
Mark background components connected to the finite mask boundary under the chosen connectivity.