1 /*=========================================================================
2 
3   Program:   Visualization Toolkit
4   Module:    vtkImageRGBToHSI.h
5 
6   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7   All rights reserved.
8   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /**
16  * @class   vtkImageRGBToHSI
17  * @brief   Converts RGB components to HSI.
18  *
19  * For each pixel with red, blue, and green components this
20  * filter output the color coded as hue, saturation and intensity.
21  * Output type must be the same as input type.
22  */
23 
24 #ifndef vtkImageRGBToHSI_h
25 #define vtkImageRGBToHSI_h
26 
27 #include "vtkImagingColorModule.h" // For export macro
28 #include "vtkThreadedImageAlgorithm.h"
29 
30 class VTKIMAGINGCOLOR_EXPORT vtkImageRGBToHSI : public vtkThreadedImageAlgorithm
31 {
32 public:
33   static vtkImageRGBToHSI* New();
34   vtkTypeMacro(vtkImageRGBToHSI, vtkThreadedImageAlgorithm);
35   void PrintSelf(ostream& os, vtkIndent indent) override;
36 
37   ///@{
38   /**
39    * Hue is an angle. Maximum specifies when it maps back to 0.  HueMaximum
40    * defaults to 255 instead of 2PI, because unsigned char is expected as
41    * input.  Maximum also specifies the maximum of the Saturation.
42    */
43   vtkSetMacro(Maximum, double);
44   vtkGetMacro(Maximum, double);
45   ///@}
46 
47 protected:
48   vtkImageRGBToHSI();
49   ~vtkImageRGBToHSI() override = default;
50 
51   double Maximum;
52 
53   void ThreadedExecute(vtkImageData* inData, vtkImageData* outData, int ext[6], int id) override;
54 
55 private:
56   vtkImageRGBToHSI(const vtkImageRGBToHSI&) = delete;
57   void operator=(const vtkImageRGBToHSI&) = delete;
58 };
59 
60 #endif
61