code: def hessian_matrix_det(image, sigma=1, approximate=True):
      """Compute the approximate Hessian Determinant over an image.
  
      The 2D approximate method uses box filters over integral images to
      compute the approximate Hessian Determinant.
  
      Parameters
      ----------
      image : ndarray
          The image over which to compute the Hessian Determinant.
      sigma : float, optional
          Standard deviation of the Gaussian kernel used for the Hessian
          matrix.
      approximate : bool, optional
          If ``True`` and the image is 2D, use a much faster approximate
          computation. This argument has no effect on 3D and higher images.
  
      Returns
      -------
      out : array
          The array of the Determinant of Hessians.
  
      References
      ----------
      .. [1] Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool,
             "SURF: Speeded Up Robust Features"
             ftp://ftp.vision.ee.ethz.ch/publications/articles/eth_biwi_00517.pdf
  
      Notes
      -----
      For 2D images when ``approximate=True``, the running time of this method
      only depends on size of the image. It is independent of `sigma` as one
      would expect. The downside is that the result for `sigma` less than `3`
      is not accurate, i.e., not similar to the result obtained if someone
      computed the Hessian and took its determinant.
      """
      image = img_as_float(image)
      float_dtype = _supported_float_type(image.dtype)
      image = image.astype(float_dtype, copy=False)
      if image.ndim == 2 and approximate:
          integral = integral_image(image)
          return np.array(_hessian_matrix_det(integral, sigma))
      else:  # slower brute-force implementation for nD images
          hessian_mat_array = _symmetric_image(
              hessian_matrix(
                  image, sigma, use_gaussian_derivatives=False
              )
          )
          return np.linalg.det(hessian_mat_array)
  
imports: import functools
  import math
  from itertools import combinations_with_replacement
  import numpy
  from scipy import ndimage
  from scipy import spatial, stats
  from .._shared.filters import gaussian
  from .._shared.utils import _supported_float_type, safe_as_int, warn
  from ..transform import integral_image
  from ..util import img_as_float
  from ._hessian_det_appx import _hessian_matrix_det
  from .corner_cy import _corner_fast, _corner_moravec, _corner_orientations
  from .peak import peak_local_max
  from .util import _prepare_grayscale_input_2D, _prepare_grayscale_input_nD
label_desc: Use image node_id 5 for calling a global function with example usage: hessian_matrix_det(image, sigma, approximate) and returns: np, np