code: def convolve(image, kernel):
      """Apply a convolution kernel (or one per channel) to an image.
  
      See :func:`convolve_` for details.
  
      Added in 0.5.0.
  
      **Supported dtypes**:
  
          See :func:`~imgaug.augmenters.convolutional.convolve_`.
  
      Parameters
      ----------
      image : ndarray
          ``(H,W)`` or ``(H,W,C)`` image array.
  
      kernel : ndarray or list of ndarray
          Either a single 2D kernel matrix (will be applied to all channels)
          or a list of 2D matrices (one per image channel).
  
      Returns
      -------
      image
          Image of the same shape and dtype as the input array.
  
      """
      return convolve_(np.copy(image), kernel)
  
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 1 for calling a global function with example usage: convolve(image, kernel) and returns: convolve_