Skip to content

Main content

Binary Mask Hit Miss Stencil Match

Explicit binary masks <=64x64 and unique integer [row,column] stencil offsets in +/-16, outside treated as zero; match explicit disjoint foreground-one and background-zero offsets; outside satisfies background only, no inferred structuring element.

Loading tool…

Description

Match explicit foreground-one and background-zero stencil requirements at each binary-grid cell.

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.

Match explicit foreground-one and background-zero stencil requirements at each binary-grid cell.

When to use this tool

Use paired foreground and background requirements to detect a specific local binary arrangement.

How to use the tool and how it works

  1. Enter mask, foreground, background using the definitions below.
  2. Run the operation. Resolve input-format errors before interpreting an output.
  3. Read result.mask, using the stated boundary, ordering, sign and absence conventions.

For each cell, require every foreground offset at [row+dy,column+dx] to equal one and every background offset to equal zero. Return one exactly where both tests pass.1

Input fieldMeaning and unitsAccepted input
maskRectangular 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.
foregroundNonempty foreground-required stencil of distinct [rowOffset,columnOffset] pairs within ±16; disjoint from background.Dense numeric rows, each dimension at most 128; the stated shape rules also apply.
backgroundNonempty background-required stencil in the same offset format; disjoint from foreground.Dense numeric rows, each dimension at most 128; the stated shape rules also apply.
Output fieldInterpretation
resultObject containing the fields below.
result.maskResult grid in original frame dimensions, with numeric cell meanings and any signed subtraction convention described above.
json
{
  "input": {
    "mask": [
      [
        0,
        0,
        0
      ],
      [
        0,
        1,
        0
      ],
      [
        0,
        0,
        0
      ]
    ],
    "foreground": [
      [
        0,
        0
      ]
    ],
    "background": [
      [
        0,
        1
      ]
    ]
  },
  "output": {
    "result": {
      "mask": [
        [
          0,
          0,
          0
        ],
        [
          0,
          1,
          0
        ],
        [
          0,
          0,
          0
        ]
      ]
    }
  }
}

Limitations and assumptions

  • Both offset sets must be nonempty and disjoint. Outside-frame cells are zero, so they can satisfy background requirements but cannot satisfy foreground requirements.
  • 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

  1. Tool behavior and example: Binary Mask Hit Miss Stencil Match — tool.io

Similar or alternative tools