27 #ifndef vtkImageSSIM_h
28 #define vtkImageSSIM_h
30 #include "vtkImagingCoreModule.h"
37 VTK_ABI_NAMESPACE_BEGIN
39 class vtkImageSSIMThreadData;
40 class vtkImageSSIMSMPThreadLocal;
72 void SetInputToRGBA();
78 void SetInputToGrayscale();
84 void SetInputToAuto();
92 void SetInputRange(std::vector<int>&
range);
99 vtkSetMacro(ClampNegativeValues,
bool);
100 vtkGetMacro(ClampNegativeValues,
bool);
101 vtkBooleanMacro(ClampNegativeValues,
bool);
110 vtkSetMacro(PatchRadius,
double);
111 vtkGetMacro(PatchRadius,
double);
120 static void ComputeErrorMetrics(
vtkDoubleArray* scalars,
double& tight,
double& loose);
135 VTK_FUTURE_CONST
int outExt[6],
int threadId)
override;
141 void SetInputToAdditiveChar(
unsigned int size);
142 void GrowExtent(
int uExt[2], VTK_FUTURE_CONST
int wholeExtent[2]);
145 bool ClampNegativeValues =
false;
156 int Mode = MODE_AUTO;
161 std::vector<std::array<double, 2>> C;
167 VTK_ABI_NAMESPACE_END
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
void SetImageConnection(vtkAlgorithmOutput *output)
Specify the Image to compare the input to.
void SetInputData(vtkDataObject *)
Assign a data object as input.
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses can reimplement this method to translate the update extent requests from each output port ...
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
This filter implements an algorithm based on SSIM for image comparison.
Generic filter that has one input.
void SetImageData(vtkDataObject *image)
Specify the Image to compare the input to.
a simple class to control print indentation
virtual void AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, VTK_FUTURE_CONST int uExtent[6])
Allocate the output data.
topologically and geometrically regular array of data
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
virtual void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, VTK_FUTURE_CONST int extent[6], int threadId)
If the subclass does not define an Execute method, then the task will be broken up, multiple threads will be spawned, and each thread will call this method.
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
general representation of visualization data