"""
This type stub file was generated by pyright.
"""

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkImageDifference(__vtkmodules_vtkCommonExecutionModel.vtkThreadedImageAlgorithm):
    """
    vtkImageDifference - Compares images for regression tests.
    
    Superclass: vtkThreadedImageAlgorithm
    
    vtkImageDifference takes two rgb unsigned char images and compares
    them. It allows the images to be slightly different.  If AllowShift
    is on, then each pixel can be shifted by two pixels. Threshold is the
    allowable error for each pixel.
    
    This is a symmetric filter and the difference computed is symmetric.
    The resulting value is the maximum error of the two directions A->B
    and B->A
    """
    def AllowShiftOff(self):
        """
        V.AllowShiftOff()
        C++: virtual void AllowShiftOff()
        
        Specify whether the comparison will allow a shift of two pixels
        between the images.  If set, then the minimum difference between
        input images will be used to determine the difference. Otherwise,
        the difference is computed directly between pixels of identical
        row/column values.
        """
        ...
    
    def AllowShiftOn(self):
        """
        V.AllowShiftOn()
        C++: virtual void AllowShiftOn()
        
        Specify whether the comparison will allow a shift of two pixels
        between the images.  If set, then the minimum difference between
        input images will be used to determine the difference. Otherwise,
        the difference is computed directly between pixels of identical
        row/column values.
        """
        ...
    
    def AveragingOff(self):
        """
        V.AveragingOff()
        C++: virtual void AveragingOff()
        
        Specify whether the comparison will include comparison of
        averaged 3x3 data between the images. For graphics renderings you
        normally would leave this on. For imaging operations it should be
        off.
        """
        ...
    
    def AveragingOn(self):
        """
        V.AveragingOn()
        C++: virtual void AveragingOn()
        
        Specify whether the comparison will include comparison of
        averaged 3x3 data between the images. For graphics renderings you
        normally would leave this on. For imaging operations it should be
        off.
        """
        ...
    
    def GetAllowShift(self):
        """
        V.GetAllowShift() -> int
        C++: virtual vtkTypeBool GetAllowShift()
        
        Specify whether the comparison will allow a shift of two pixels
        between the images.  If set, then the minimum difference between
        input images will be used to determine the difference. Otherwise,
        the difference is computed directly between pixels of identical
        row/column values.
        """
        ...
    
    def GetAverageThresholdFactor(self):
        """
        V.GetAverageThresholdFactor() -> float
        C++: virtual double GetAverageThresholdFactor()
        
        When doing Averaging, adjust the threshold for the average by
        this factor. Defaults to 0.5 requiring a better match
        """
        ...
    
    def GetAveraging(self):
        """
        V.GetAveraging() -> int
        C++: virtual vtkTypeBool GetAveraging()
        
        Specify whether the comparison will include comparison of
        averaged 3x3 data between the images. For graphics renderings you
        normally would leave this on. For imaging operations it should be
        off.
        """
        ...
    
    def GetError(self):
        """
        V.GetError() -> float
        C++: double GetError()
        V.GetError([float, ...])
        C++: void GetError(double *e)
        
        Return the total error in comparing the two images.
        """
        ...
    
    def GetImage(self):
        """
        V.GetImage() -> vtkImageData
        C++: vtkImageData *GetImage()
        
        Specify the Image to compare the input to.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetThreshold(self):
        """
        V.GetThreshold() -> int
        C++: virtual int GetThreshold()
        
        Specify a threshold tolerance for pixel differences.
        """
        ...
    
    def GetThresholdedError(self):
        """
        V.GetThresholdedError() -> float
        C++: double GetThresholdedError()
        V.GetThresholdedError([float, ...])
        C++: void GetThresholdedError(double *e)
        
        Return the total thresholded error in comparing the two images.
        The thresholded error is the error for a given pixel minus the
        threshold and clamped at a minimum of zero.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkImageDifference
        C++: vtkImageDifference *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkImageDifference
        C++: static vtkImageDifference *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetAllowShift(self, p_int):
        """
        V.SetAllowShift(int)
        C++: virtual void SetAllowShift(vtkTypeBool _arg)
        
        Specify whether the comparison will allow a shift of two pixels
        between the images.  If set, then the minimum difference between
        input images will be used to determine the difference. Otherwise,
        the difference is computed directly between pixels of identical
        row/column values.
        """
        ...
    
    def SetAverageThresholdFactor(self, p_float):
        """
        V.SetAverageThresholdFactor(float)
        C++: virtual void SetAverageThresholdFactor(double _arg)
        
        When doing Averaging, adjust the threshold for the average by
        this factor. Defaults to 0.5 requiring a better match
        """
        ...
    
    def SetAveraging(self, p_int):
        """
        V.SetAveraging(int)
        C++: virtual void SetAveraging(vtkTypeBool _arg)
        
        Specify whether the comparison will include comparison of
        averaged 3x3 data between the images. For graphics renderings you
        normally would leave this on. For imaging operations it should be
        off.
        """
        ...
    
    def SetImageConnection(self, vtkAlgorithmOutput):
        """
        V.SetImageConnection(vtkAlgorithmOutput)
        C++: void SetImageConnection(vtkAlgorithmOutput *output)
        
        Specify the Image to compare the input to.
        """
        ...
    
    def SetImageData(self, vtkDataObject):
        """
        V.SetImageData(vtkDataObject)
        C++: void SetImageData(vtkDataObject *image)
        
        Specify the Image to compare the input to.
        """
        ...
    
    def SetThreshold(self, p_int):
        """
        V.SetThreshold(int)
        C++: virtual void SetThreshold(int _arg)
        
        Specify a threshold tolerance for pixel differences.
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    __dict__ = ...
    __vtkname__ = ...


