class_docstr: **Bases:** :class:`GraphicsObject <pyqtgraph.GraphicsObject>`
class_docstr_tok: ["*","*","Bases",":","*","*",":","class",":","`","GraphicsObject","<","pyqtgraph.GraphicsObject",">","`"]
docstr: See :func:`~pyqtgraph.ImageItem.setOpts` for further keyword arguments and 
  and :func:`~pyqtgraph.ImageItem.setImage` for information on supported formats.
  
  Parameters
  ----------
      image: np.ndarray, optional
          Image data
docstr_tok: ["See",":","func",":","`","~pyqtgraph.ImageItem.setOpts","`","for","further","keyword","arguments","and","and",":","func",":","`","~pyqtgraph.ImageItem.setImage","`","for","information","on","supported","formats",".","Parameters","--","--","--","--","--","image",":","np.ndarray",",","optional","Image","data"]
code: def __init__(self, image=None, **kargs):
      """
      See :func:`~pyqtgraph.ImageItem.setOpts` for further keyword arguments and
      and :func:`~pyqtgraph.ImageItem.setImage` for information on supported formats.
  
      Parameters
      ----------
          image: np.ndarray, optional
              Image data
      """
      GraphicsObject.__init__(self)
      self.menu = None
      self.image = None  ## original image data
      self.qimage = None  ## rendered image for display
  
      self.paintMode = None
      self.levels = None  ## [min, max] or [[redMin, redMax], ...]
      self.lut = None
      self.autoDownsample = False
      self._colorMap = (
          None  # This is only set if a color map is assigned directly
      )
      self._lastDownsample = (1, 1)
      self._processingBuffer = None
      self._displayBuffer = None
      self._renderRequired = True
      self._unrenderable = False
      self._xp = None  # either numpy or cupy, to match the image data
      self._defferedLevels = None
      self._imageHasNans = None  # None : not yet known
  
      self.axisOrder = getConfigOption("imageAxisOrder")
      self._dataTransform = self._inverseDataTransform = None
      self._update_data_transforms(
          self.axisOrder
      )  # install initial transforms
  
      # In some cases, we use a modified lookup table to handle both rescaling
      # and LUT more efficiently
      self._effectiveLut = None
  
      self.drawKernel = None
      self.border = None
      self.removable = False
  
      if image is not None:
          self.setImage(image, **kargs)
      else:
          self.setOpts(**kargs)
  
imports: import warnings
  from collections.abc import Callable
  import numpy
  from ..None import colormap
  from ..None import debug
  from ..None import functions
  from ..None import getConfigOption
  from ..Point import Point
  from ..Qt import QtCore, QtGui, QtWidgets
  from ..util.cupy_helper import getCupy
  from .GraphicsObject import GraphicsObject
label_desc: Use image node_id 1 to create a new ImageItem object from inherited base classes: GraphicsObject with example: obj = ImageItem(image)