Skip to main content
`Ctrl`+`K`
scipy.ndimage.

# iterate_structure

scipy.ndimage.iterate_structure(structure, iterations, origin=None)

  Iterate a structure by dilating it with itself.

  Parameters:
    structure array_like

      Structuring element (an array of bools, for example), to be dilated with itself.

    iterations int

      number of dilations performed on the structure with itself

    origin optional

      If origin is None, only the iterated structure is returned. If not, a tuple of the iterated structure and the modified origin is returned.

  Returns:
    iterate_structure ndarray of bools

      A new structuring element obtained by dilating structure (iterations - 1) times with itself.

  See also

  `generate_binary_structure`

  Notes

  Array API Standard Support

  `iterate_structure` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ✅
  PyTorch | ✅ | ⛔
  JAX | ⚠️ no JIT | ⛔
  Dask | ⚠️ computes graph | n/a

  > See Support for the array API standard for more information.

  Examples

      >>> from scipy import ndimage
      >>> struct = ndimage.generate_binary_structure(2, 1)
      >>> struct.astype(int)
      array([[0, 1, 0],
             [1, 1, 1],
             [0, 1, 0]])
      >>> ndimage.iterate_structure(struct, 2).astype(int)
      array([[0, 0, 1, 0, 0],
             [0, 1, 1, 1, 0],
             [1, 1, 1, 1, 1],
             [0, 1, 1, 1, 0],
             [0, 0, 1, 0, 0]])
      >>> ndimage.iterate_structure(struct, 3).astype(int)
      array([[0, 0, 0, 1, 0, 0, 0],
             [0, 0, 1, 1, 1, 0, 0],
             [0, 1, 1, 1, 1, 1, 0],
             [1, 1, 1, 1, 1, 1, 1],
             [0, 1, 1, 1, 1, 1, 0],
             [0, 0, 1, 1, 1, 0, 0],
             [0, 0, 0, 1, 0, 0, 0]])