isce3 0.25.0
Loading...
Searching...
No Matches
cuCorrNormalizer.h
1/*
2 * @file cuNormalizer.h
3 * @brief normalize the correlation surface
4 *
5 * cuNormalizeProcessor is an abstract class for processors to normalize the correlation surface.
6 * It has different implementations wrt different image sizes.
7 * cuNormalizeFixed<64/128/.../1024> use a shared memory accelerated algorithm, which are limited by the number of cuda threads in a block.
8 * cuNormalizeSAT uses the sum area table based algorithm, which applies to any size (used for >1024).
9 * cuNormalizer is a wrapper class which determines which processor to use.
10 */
11
12#ifndef __CUNORMALIZER_H
13#define __CUNORMALIZER_H
14
15#include "cuArrays.h"
16
17namespace isce3::matchtemplate::pycuampcor {
18
23class cuNormalizeProcessor {
24public:
25 // default constructor and destructor
26 cuNormalizeProcessor() {}
27 ~cuNormalizeProcessor() {}
28 // execute interface
29 virtual void execute(cuArrays<float> * correlation, cuArrays<float> *reference, cuArrays<float> *secondary) = 0;
30};
31
32class cuNormalizer {
33private:
34 cuNormalizeProcessor *processor;
35public:
36 // disable the default constructor
37 cuNormalizer() = delete;
38 // constructor with the secondary dimension
39 cuNormalizer(int secondaryNX, int secondaryNY, int count);
40 // destructor
41 ~cuNormalizer();
42 // execute correlation surface normalization
43 void execute(cuArrays<float> *correlation, cuArrays<float> *reference, cuArrays<float> *secondary);
44};
45
46class cuNormalizeSAT : public cuNormalizeProcessor
47{
48private:
49 cuArrays<float> *referenceSum2;
50 cuArrays<float> *secondarySAT;
51 cuArrays<float> *secondarySAT2;
52
53public:
54 cuNormalizeSAT(int secondaryNX, int secondaryNY, int count);
55 ~cuNormalizeSAT();
56 void execute(cuArrays<float> * correlation, cuArrays<float> *reference, cuArrays<float> *search) override;
57};
58
59} // namespace
60
61#endif
62// end of file
Abstract class interface for correlation surface normalization processor with different implementatio...
Definition cuCorrNormalizer.h:23
Header file for cuArrays class.

Generated for ISCE3.0 by doxygen 1.13.2.