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