code: def _testimpl_numba_func_image(
      device,
      run_fn,
      out_types,
      in_types,
      outs_ndim,
      ins_ndim,
      setup_fn,
      batch_processing,
      transform,
      blocks=None,
      threads_per_block=None,
  ):
      pipe = numba_func_image_pipe(
          device=device,
          batch_size=8,
          num_threads=3,
          device_id=0,
          run_fn=run_fn,
          setup_fn=setup_fn,
          out_types=out_types,
          in_types=in_types,
          outs_ndim=outs_ndim,
          ins_ndim=ins_ndim,
          batch_processing=batch_processing,
          blocks=blocks,
          threads_per_block=threads_per_block,
      )
      pipe.build()
      for _ in range(3):
          images_in, images_out = pipe.run()
          for i in range(len(images_in)):
              image_in_transformed = transform(to_array(images_in[i]))
              assert np.array_equal(
                  image_in_transformed, to_array(images_out[i])
              )
  
imports: import numpy
  import os
  from nvidia.dali import pipeline_def
  import nvidia.dali
  import nvidia.dali.fn
  import nvidia.dali.types
  from nose import with_setup
  from test_utils import get_dali_extra_path, to_array, check_numba_compatibility_cpu, check_numba_compatibility_gpu
  from nvidia.dali.plugin.numba.fn.experimental import numba_function
  from numba import cuda
label_desc: Use image node_id 21 for calling a global function with example usage: _testimpl_numba_func_image(device, run_fn, out_types, in_types, outs_ndim, ins_ndim, setup_fn, batch_processing, transform, blocks, threads_per_block) without return types