code: def tophat_open(f, Bc=None, out=None):
      """
      fopen = tophat_open(f, Bc={3x3 cross}, out={new array})
  
      Open top-hat transform (aka white tophat transform)
  
      This returns objects that are smaller than ``Bc`` and contain higher values
      than their surroundings.
  
      See: https://en.wikipedia.org/wiki/Top-hat_transform
  
      Parameters
      ----------
      f : ndarray
      Bc : ndarray, optional
          structuring element
      out : ndarray, optional
          output array
  
      Returns
      -------
      fopened : ndarray
          Of same type and shape as ``f``
  
      See Also
      --------
      tophat_close : function
          Sister function to this one
      """
      Bc = get_structuring_elem(f, Bc)
      out = _get_output(f, out, "tophat_open")
      fo = open(f, Bc)
      return subm(f, fo, out=out)
  
imports: from __future__ import division
  import numpy
  from .internal import _get_output, _verify_is_integer_type, _check_2
  from .None import _morph
label_desc: Use image node_id 20 for calling a global function with example usage: tophat_open(f, Bc, out) and returns: subm