def onChange(self, min_changed_pixels=None, handler=None):
        """ Registers an event to call ``handler`` when at least ``min_changed_pixels``
        change in this region.

        (Default for min_changed_pixels is set in Settings.ObserveMinChangedPixels)

        The ``handler`` function should take one parameter, an ObserveEvent object
        (see below). This event is ignored in the future unless the handler calls
        the repeat() method on the provided ObserveEvent object.

        Returns the event's ID as a string.
        """
        if isinstance(min_changed_pixels, int) and (callable(handler) or handler is None):
            return self._observer.register_event(
                "CHANGE",
                pattern=(min_changed_pixels, self.getBitmap()),
                handler=handler)
        elif (callable(min_changed_pixels) or min_changed_pixels is None) and (callable(handler) or handler is None):
            handler = min_changed_pixels or handler
            return self._observer.register_event(
                "CHANGE",
                pattern=(Settings.ObserveMinChangedPixels, self.getBitmap()),
                handler=handler)
        else:
            raise ValueError("Unsupported arguments for onChange method")
Registers an event to call ``handler`` when at least ``min_changed_pixels``
        change in this region.

        (Default for min_changed_pixels is set in Settings.ObserveMinChangedPixels)

        The ``handler`` function should take one parameter, an ObserveEvent object
        (see below). This event is ignored in the future unless the handler calls
        the repeat() method on the provided ObserveEvent object.

        Returns the event's ID as a string.