ITK  6.0.0
Insight Toolkit
itkRGBToLuminanceImageAdaptor.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkRGBToLuminanceImageAdaptor_h
19#define itkRGBToLuminanceImageAdaptor_h
20
21#include "itkImageAdaptor.h"
22#include "itkMath.h"
23
24namespace itk
25{
26namespace Accessor
27{
41template <typename TInternalType, typename TExternalType>
43{
44public:
45
48 using ExternalType = TExternalType;
49
52 using InternalType = TInternalType;
53
54 static inline void
55 Set(TInternalType & output, const TExternalType & input)
56 {
57 output = static_cast<TInternalType>(input.GetLuminance());
58 }
59
60 static inline TExternalType
61 Get(const TInternalType & input)
62 {
63 return static_cast<TExternalType>(input.GetLuminance());
64 }
65};
66} // end namespace Accessor
67
79template <typename TImage, typename TOutputPixelType>
81 : public ImageAdaptor<TImage, Accessor::RGBToLuminancePixelAccessor<typename TImage::PixelType, TOutputPixelType>>
82{
83public:
84 ITK_DISALLOW_COPY_AND_MOVE(RGBToLuminanceImageAdaptor);
85
88 using Superclass =
92
94 itkNewMacro(Self);
95
97 itkOverrideGetNameOfClassMacro(RGBToLuminanceImageAdaptor);
98
99protected:
101 ~RGBToLuminanceImageAdaptor() override = default;
102};
103} // end namespace itk
104
105#endif
Give access to Luminance of a color pixel type.
static void Set(TInternalType &output, const TExternalType &input)
static TExternalType Get(const TInternalType &input)
Base class for all data objects in ITK.
Give access to partial aspects of voxels from an Image.
Base class for most ITK classes.
Definition: itkObject.h:62
Presents a color image as being composed of the Luminance of its pixels.
~RGBToLuminanceImageAdaptor() override=default
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....