code: def __call__(self, _image, nb_channels, random_state):
      alpha_sample = self.alpha.draw_sample(random_state=random_state)
      assert 0 <= alpha_sample <= 1.0, (
          "Expected 'alpha' to be in the interval [0.0, 1.0], "
          "got %.4f." % (alpha_sample,)
      )
      lightness_sample = self.lightness.draw_sample(
          random_state=random_state
      )
      matrix_nochange = np.array(
          [[0, 0, 0], [0, 1, 0], [0, 0, 0]], dtype=np.float32
      )
      matrix_effect = np.array(
          [[-1, -1, -1], [-1, 8 + lightness_sample, -1], [-1, -1, -1]],
          dtype=np.float32,
      )
      matrix = (
          1 - alpha_sample
      ) * matrix_nochange + alpha_sample * matrix_effect
      return matrix
  
imports: from __future__ import print_function, division, absolute_import
  import itertools
  import numpy
  import cv2
  import six.moves
  import imgaug
  from .None import meta
  from ..None import parameters
  from ..None import dtypes
label_desc: Use image node_id 2 for calling the _SharpeningMatrixGenerator obj's underlying member method code with example usage: obj.__call__(_image, nb_channels, random_state) and returns: matrix