code: def deltaE_ciede94(
      lab1,
      lab2,
      kH=1,
      kC=1,
      kL=1,
      k1=0.045,
      k2=0.015,
      *,
      channel_axis=-1,
  ):
      """Color difference according to CIEDE 94 standard
  
      Accommodates perceptual non-uniformities through the use of application
      specific scale factors (`kH`, `kC`, `kL`, `k1`, and `k2`).
  
      Parameters
      ----------
      lab1 : array_like
          reference color (Lab colorspace)
      lab2 : array_like
          comparison color (Lab colorspace)
      kH : float, optional
          Hue scale
      kC : float, optional
          Chroma scale
      kL : float, optional
          Lightness scale
      k1 : float, optional
          first scale parameter
      k2 : float, optional
          second scale parameter
      channel_axis : int, optional
          This parameter indicates which axis of the arrays corresponds to
          channels.
  
          .. versionadded:: 0.19
             ``channel_axis`` was added in 0.19.
  
      Returns
      -------
      dE : array_like
          color difference between `lab1` and `lab2`
  
      Notes
      -----
      deltaE_ciede94 is not symmetric with respect to lab1 and lab2.  CIEDE94
      defines the scales for the lightness, hue, and chroma in terms of the first
      color.  Consequently, the first color should be regarded as the "reference"
      color.
  
      `kL`, `k1`, `k2` depend on the application and default to the values
      suggested for graphic arts
  
      ==========  ==============  ==========
      Parameter    Graphic Arts    Textiles
      ==========  ==============  ==========
      `kL`         1.000           2.000
      `k1`         0.045           0.048
      `k2`         0.015           0.014
      ==========  ==============  ==========
  
      References
      ----------
      .. [1] https://en.wikipedia.org/wiki/Color_difference
      .. [2] http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE94.html
      """
      lab1, lab2 = _float_inputs(lab1, lab2, allow_float32=True)
      lab1 = np.moveaxis(lab1, source=channel_axis, destination=0)
      lab2 = np.moveaxis(lab2, source=channel_axis, destination=0)
  
      L1, C1 = lab2lch(lab1, channel_axis=0)[:2]
      L2, C2 = lab2lch(lab2, channel_axis=0)[:2]
  
      dL = L1 - L2
      dC = C1 - C2
      dH2 = get_dH2(lab1, lab2, channel_axis=0)
  
      SL = 1
      SC = 1 + k1 * C1
      SH = 1 + k2 * C1
  
      dE2 = (dL / (kL * SL)) ** 2
      dE2 += (dC / (kC * SC)) ** 2
      dE2 += dH2 / (kH * SH) ** 2
      return np.sqrt(np.maximum(dE2, 0))
  
file_path: scikit-image/skimage/color/delta_e.py
imports: import numpy
  from .._shared.utils import _supported_float_type
  from .colorconv import lab2lch, _cart2polar_2pi
label_desc: Use image node_id 3 for calling a global function with example usage: deltaE_ciede94(lab1, lab2, kH, kC, kL, k1, k2) and returns: np