ItalaApi  1.3.3
Polarization.h
1 
2 /***********************************************************************************
3  *
4  * ItalaApi - Copyright (C) 2024 Opto Engineering
5  *
6  * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
7  * INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
8  * FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT
9  * HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY SUFFERED BY LICENSE AS
10  * A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
11  *
12  ***********************************************************************************/
13 
14 #ifndef ITALA_API_POLARIZATION_H
15 #define ITALA_API_POLARIZATION_H
16 
17 #include "ItalaApi/Export.h"
18 #include "PFNC/PFNC.h"
19 
20 namespace Itala {
21 struct IImage;
22 
27 enum class PolarComponent { P0, P45, P90, P135 };
28 
39 enum class PolarDemosaicingAlgorithm { None, NearestNeighbour, Bilinear, WeightedBilinear };
40 
53 ITALA_API IImage* ExtractPolarComponent(const IImage* image, PolarComponent component,
54  PolarDemosaicingAlgorithm algorithm);
60  IImage *P0, *P45, *P90, *P135;
61 };
73 ITALA_API PolarComponents ExtractAllPolarComponents(const IImage* image,
74  PolarDemosaicingAlgorithm algorithm);
80  PolarComponents RedComponents, GreenComponents, BlueComponents;
81 };
94 ITALA_API PolarComponentsColor ExtractAllPolarComponentsColor(const IImage* image,
95  PolarDemosaicingAlgorithm algorithm);
103 ITALA_API IImage* ComputeStokesS0(const PolarComponents& polarComponents);
104 
112 ITALA_API IImage* ComputeStokesS1(const PolarComponents& polarComponents);
113 
121 ITALA_API IImage* ComputeStokesS2(const PolarComponents& polarComponents);
122 
128  IImage *S0, *S1, *S2;
129 };
139 ITALA_API StokesVectors ComputeAllStokes(const PolarComponents& polarComponents);
140 
148 ITALA_API IImage* ComputeAoLP(const StokesVectors& stokesVectors);
149 
157 ITALA_API IImage* ComputeDoLP(const StokesVectors& stokesVectors);
158 
167 ITALA_API IImage* ComputeIntensity(const StokesVectors& stokesVectors,
168  PfncFormat rawImagePixelFormat);
180 ITALA_API IImage* ComputeAoLP(const IImage* image, PolarDemosaicingAlgorithm algorithm);
181 
193 ITALA_API IImage* ComputeDoLP(const IImage* image, PolarDemosaicingAlgorithm algorithm);
194 
206 ITALA_API IImage* ComputeIntensity(const IImage* image, PolarDemosaicingAlgorithm algorithm);
207 
218 ITALA_API IImage* ComputePolarQuadrantsImage(const IImage* image);
219 
220 } // namespace Itala
221 
222 #endif
Definition: DefectivePixel.h:23
Definition: Polarization.h:127
Definition: Polarization.h:79
Definition: Polarization.h:59
Definition: IImage.h:30