docs: def iterate_cascade(self, cascade, image, threshold = None):
      """iterate_cascade(self, cascade, image, [threshold]) -> prediction, bounding_box
  
      Iterates over the given image and computes the cascade of classifiers.
      This function will compute the cascaded classification result for the given ``image`` using the given ``cascade``.
      It yields a tuple of prediction value and the according bounding box.
      If a ``threshold`` is specified, only those ``prediction``\s are returned, which exceed the given ``threshold``.
  
      .. note::
         The ``threshold`` does not overwrite the cascade thresholds `:py:attr:`Cascade.thresholds`, but only threshold the final prediction.
         Specifying the ``threshold`` here is just slightly faster than thresholding the yielded prediction.
  
      **Parameters:**
  
      ``cascade`` : :py:class:`Cascade`
        The cascade that performs the predictions
  
      ``image`` : array_like(2D)
        The image for which the predictions should be computed
  
      ``threshold`` : float
        The threshold, which limits the number of predictions
  
      **Yields:**
  
      ``prediction`` : float
        The prediction value for the current bounding box
  
      ``bounding_box`` : :py:class:`BoundingBox`
        An iterator over all possible sampled bounding boxes (which exceed the prediction ``threshold``, if given)
      """
  
      for scale, scaled_image_shape in self.scales(image):
        # prepare the feature extractor to extract features from the given image
        cascade.prepare(image, scale)
        for bb in self.sample_scaled(scaled_image_shape):
          # return the prediction and the bounding box, if the prediction is over threshold
          prediction = cascade(bb)
          if threshold is None or prediction > threshold:
            yield prediction, bb.scale(1./scale)