30#include "vtkImagingCoreModule.h"
37VTK_ABI_NAMESPACE_BEGIN
39class vtkImageSSIMThreadData;
40class vtkImageSSIMSMPThreadLocal;
99 vtkSetMacro(ClampNegativeValues,
bool);
100 vtkGetMacro(ClampNegativeValues,
bool);
101 vtkBooleanMacro(ClampNegativeValues,
bool);
110 vtkSetMacro(PatchRadius,
double);
111 vtkGetMacro(PatchRadius,
double);
129 using Superclass::AllocateOutputData;
134 int outExt[6],
int threadId)
override;
140 void SetInputToAdditiveChar(
unsigned int size);
141 void GrowExtent(
int* uExt,
int* wholeExtent);
144 bool ClampNegativeValues =
false;
155 int Mode = MODE_AUTO;
160 std::vector<std::array<double, 2>> C;
Proxy object to connect input/output ports.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
general representation of visualization data
dynamic, self-adjusting array of double
void SetInputData(vtkDataObject *)
Assign a data object as input.
topologically and geometrically regular array of data
This filter implements an algorithm based on SSIM for image comparison.
void SetInputToAuto()
The c1 and c2 constant will be computed automatically based on the range of each individual component...
static void ComputeErrorMetrics(vtkDoubleArray *scalars, double &tight, double &loose)
Compute error metrics of a provided scalars.
void SetInputToRGB()
Assume the input is in RGB format, using integers from 0 to 255.
void SetImageData(vtkDataObject *image)
Specify the Image to compare the input to.
static vtkImageSSIM * New()
void SetInputToGrayscale()
Assume the input is in grayscale, using integers from 0 to 255.
void SetImageConnection(vtkAlgorithmOutput *output)
Specify the Image to compare the input to.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
void SetInputRange(std::vector< int > &range)
Setup the range of each components of the input scalars.
void AllocateOutputData(vtkImageData *output, vtkInformation *outInfo, int *uExtent) override
Allocate the output data.
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to translate the update extent requests from each output port ...
~vtkImageSSIM() override=default
void SetInputToLab()
Assume the input is in Lab format.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetInputToRGBA()
Assume the input is in RGBA format, using integers from 0 to 255.
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int outExt[6], int threadId) override
If the subclass does not define an Execute method, then the task will be broken up,...
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called in response to a REQUEST_DATA request from the executive.
a simple class to control print indentation
Generic filter that has one input.