You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/3rd/VTK7.1/include/vtkImageQuantizeRGBToIndex.h

116 lines
3.4 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkImageQuantizeRGBToIndex.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkImageQuantizeRGBToIndex
* @brief generalized histograms up to 4 dimensions
*
* vtkImageQuantizeRGBToIndex takes a 3 component RGB image as
* input and produces a one component index image as output, along with
* a lookup table that contains the color definitions for the index values.
* This filter works on the entire input extent - it does not perform
* streaming, and it does not supported threaded execution (because it has
* to process the entire image).
*
* To use this filter, you typically set the number of colors
* (between 2 and 65536), execute it, and then retrieve the lookup table.
* The colors can then be using the lookup table and the image index.
*/
#ifndef vtkImageQuantizeRGBToIndex_h
#define vtkImageQuantizeRGBToIndex_h
#include "vtkImagingColorModule.h" // For export macro
#include "vtkImageAlgorithm.h"
class vtkLookupTable;
class VTKIMAGINGCOLOR_EXPORT vtkImageQuantizeRGBToIndex : public vtkImageAlgorithm
{
public:
static vtkImageQuantizeRGBToIndex *New();
vtkTypeMacro(vtkImageQuantizeRGBToIndex,vtkImageAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
//@{
/**
* Set / Get the number of color index values to produce - must be
* a number between 2 and 65536.
*/
vtkSetClampMacro( NumberOfColors, int, 2, 65536 );
vtkGetMacro( NumberOfColors, int );
//@}
//@{
/**
* Get the resulting lookup table that contains the color definitions
* corresponding to the index values in the output image.
*/
vtkGetObjectMacro( LookupTable, vtkLookupTable );
//@}
vtkGetMacro( InitializeExecuteTime, double );
vtkGetMacro( BuildTreeExecuteTime, double );
vtkGetMacro( LookupIndexExecuteTime, double );
//@{
/**
* For internal use only - get the type of the image
*/
vtkGetMacro( InputType, int );
//@}
//@{
/**
* For internal use only - set the times for execution
*/
vtkSetMacro( InitializeExecuteTime, double );
vtkSetMacro( BuildTreeExecuteTime, double );
vtkSetMacro( LookupIndexExecuteTime, double );
//@}
protected:
vtkImageQuantizeRGBToIndex();
~vtkImageQuantizeRGBToIndex();
vtkLookupTable *LookupTable;
int NumberOfColors;
int InputType;
double InitializeExecuteTime;
double BuildTreeExecuteTime;
double LookupIndexExecuteTime;
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int RequestData(vtkInformation *,
vtkInformationVector **,
vtkInformationVector *);
private:
vtkImageQuantizeRGBToIndex(const vtkImageQuantizeRGBToIndex&) VTK_DELETE_FUNCTION;
void operator=(const vtkImageQuantizeRGBToIndex&) VTK_DELETE_FUNCTION;
};
#endif