Ocean
TestIntegralImage.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_TEST_TESTCV_TEST_INTEGRAL_IMAGE_H
9 #define META_OCEAN_TEST_TESTCV_TEST_INTEGRAL_IMAGE_H
10 
12 
13 namespace Ocean
14 {
15 
16 namespace Test
17 {
18 
19 namespace TestCV
20 {
21 
22 /**
23  * This class implements an integral image tester.
24  * @ingroup testcv
25  */
26 class OCEAN_TEST_CV_EXPORT TestIntegralImage
27 {
28  public:
29 
30  /**
31  * Tests all integral image functions.
32  * @param width The width of the source frame in pixel, with range [1, infinity)
33  * @param height The height of the source frame in pixel, with range [1, infinity)
34  * @param testDuration Number of seconds for each test, with range (0, infinity)
35  * @return True, if succeeded
36  */
37  static bool test(const unsigned int width, const unsigned int height, const double testDuration);
38 
39  /**
40  * Tests the standard integral image function without any border.
41  * @param width The width of the source frame in pixel, with range [1, infinity)
42  * @param height The height of the source frame in pixel, with range [1, infinity)
43  * @param testDuration Number of seconds for each test, with range (0, infinity)
44  * @return True, if succeeded
45  */
46  static bool testIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
47 
48  /**
49  * Tests the standard integral image function without any border.
50  * @param width The width of the source frame in pixel, with range [1, infinity)
51  * @param height The height of the source frame in pixel, with range [1, infinity)
52  * @param testDuration Number of seconds for each test, with range (0, infinity)
53  * @return True, if succeeded
54  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
55  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
56  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
57  */
58  template <typename T, typename TIntegral, unsigned int tChannels>
59  static bool testIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
60 
61  /**
62  * Tests the lined integral image function.
63  * @param width The width of the source frame in pixel, with range [1, infinity)
64  * @param height The height of the source frame in pixel, with range [1, infinity)
65  * @param testDuration Number of seconds for each test, with range (0, infinity)
66  * @return True, if succeeded
67  */
68  static bool testLinedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
69 
70  /**
71  * Tests the comfort function for lined integral images.
72  * @param testDuration Number of seconds for each test, with range (0, infinity)
73  * @return True, if succeeded
74  */
75  static bool testLinedIntegralImageComfort(const double testDuration);
76 
77  /**
78  * Tests the lined integral image function.
79  * @param width The width of the source frame in pixel, with range [1, infinity)
80  * @param height The height of the source frame in pixel, with range [1, infinity)
81  * @param testDuration Number of seconds for each test, with range (0, infinity)
82  * @return True, if succeeded
83  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
84  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
85  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
86  */
87  template <typename T, typename TIntegral, unsigned int tChannels>
88  static bool testLinedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
89 
90  /**
91  * Tests the lined squared integral image function.
92  * @param width The width of the source frame in pixel, with range [1, infinity)
93  * @param height The height of the source frame in pixel, with range [1, infinity)
94  * @param testDuration Number of seconds for each test, with range (0, infinity)
95  * @return True, if succeeded
96  */
97  static bool testLinedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration);
98 
99  /**
100  * Tests the lined squared integral image function.
101  * @param width The width of the source frame in pixel, with range [1, infinity)
102  * @param height The height of the source frame in pixel, with range [1, infinity)
103  * @param testDuration Number of seconds for each test, with range (0, infinity)
104  * @return True, if succeeded
105  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
106  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
107  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
108  */
109  template <typename T, typename TIntegral, unsigned int tChannels>
110  static bool testLinedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration);
111 
112  /**
113  * Tests the joined lined integral and squared integral image function.
114  * @param width The width of the source frame in pixel, with range [1, infinity)
115  * @param height The height of the source frame in pixel, with range [1, infinity)
116  * @param testDuration Number of seconds for each test, with range (0, infinity)
117  * @return True, if succeeded
118  */
119  static bool testLinedIntegralImageAndSquaredJoined(const unsigned int width, const unsigned int height, const double testDuration);
120 
121  /**
122  * Tests the joined lined integral and squared integral image function.
123  * @param width The width of the source frame in pixel, with range [1, infinity)
124  * @param height The height of the source frame in pixel, with range [1, infinity)
125  * @param testDuration Number of seconds for each test, with range (0, infinity)
126  * @return True, if succeeded
127  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
128  * @tparam TIntegralAndSquared The data type of each integral element, e.g., 'unsigned int'
129  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
130  */
131  template <typename T, typename TIntegralAndSquared, unsigned int tChannels>
132  static bool testLinedIntegralImageAndSquaredJoined(const unsigned int width, const unsigned int height, const double testDuration);
133 
134  /**
135  * Tests the separate lined integral and squared integral image function.
136  * @param width The width of the source frame in pixel, with range [1, infinity)
137  * @param height The height of the source frame in pixel, with range [1, infinity)
138  * @param testDuration Number of seconds for each test, with range (0, infinity)
139  * @return True, if succeeded
140  */
141  static bool testLinedIntegralImageAndSquaredSeparate(const unsigned int width, const unsigned int height, const double testDuration);
142 
143  /**
144  * Tests the separate lined integral and squared integral image function.
145  * @param width The width of the source frame in pixel, with range [1, infinity)
146  * @param height The height of the source frame in pixel, with range [1, infinity)
147  * @param testDuration Number of seconds for each test, with range (0, infinity)
148  * @return True, if succeeded
149  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
150  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
151  * @tparam TIntegralSquared The data type of each squared integral element, e.g., 'unsigned int'
152  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
153  */
154  template <typename T, typename TIntegral, typename TIntegralSquared, unsigned int tChannels>
155  static bool testLinedIntegralImageAndSquaredSeparate(const unsigned int width, const unsigned int height, const double testDuration);
156 
157  /**
158  * Tests the bordered integral image function.
159  * @param width The width of the source frame in pixel, with range [1, infinity)
160  * @param height The height of the source frame in pixel, with range [1, infinity)
161  * @param testDuration Number of seconds for each test, with range (0, infinity)
162  * @return True, if succeeded
163  */
164  static bool testBorderedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
165 
166  /**
167  * Tests the comfort function for bordered integral images.
168  * @param testDuration Number of seconds for each test, with range (0, infinity)
169  * @return True, if succeeded
170  */
171  static bool testBorderedIntegralImageComfort(const double testDuration);
172 
173  /**
174  * Tests the bordered integral image function.
175  * @param width The width of the source frame in pixel, with range [1, infinity)
176  * @param height The height of the source frame in pixel, with range [1, infinity)
177  * @param testDuration Number of seconds for each test, with range (0, infinity)
178  * @return True, if succeeded
179  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
180  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
181  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
182  */
183  template <typename T, typename TIntegral, unsigned int tChannels>
184  static bool testBorderedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration);
185 
186  /**
187  * Tests the bordered squared integral image function.
188  * @param width The width of the source frame in pixel, with range [1, infinity)
189  * @param height The height of the source frame in pixel, with range [1, infinity)
190  * @param testDuration Number of seconds for each test, with range (0, infinity)
191  * @return True, if succeeded
192  */
193  static bool testBorderedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration);
194 
195  /**
196  * Tests the bordered squared integral image function.
197  * @param width The width of the source frame in pixel, with range [1, infinity)
198  * @param height The height of the source frame in pixel, with range [1, infinity)
199  * @param testDuration Number of seconds for each test, with range (0, infinity)
200  * @return True, if succeeded
201  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
202  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
203  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
204  */
205  template <typename T, typename TIntegral, unsigned int tChannels>
206  static bool testBorderedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration);
207 
208  /**
209  * Tests the bordered mirrored integral image function.
210  * @param width The width of the source frame in pixel, with range [1, infinity)
211  * @param height The height of the source frame in pixel, with range [1, infinity)
212  * @param testDuration Number of seconds for each test, with range (0, infinity)
213  * @return True, if succeeded
214  */
215  static bool testBorderedIntegralImageMirror(const unsigned int width, const unsigned int height, const double testDuration);
216 
217  /**
218  * Tests the bordered mirrored integral image function.
219  * @param width The width of the source frame in pixel, with range [1, infinity)
220  * @param height The height of the source frame in pixel, with range [1, infinity)
221  * @param testDuration Number of seconds for each test, with range (0, infinity)
222  * @return True, if succeeded
223  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
224  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
225  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
226  */
227  template <typename T, typename TIntegral, unsigned int tChannels>
228  static bool testBorderedIntegralImageMirror(const unsigned int width, const unsigned int height, const double testDuration);
229 
230  /**
231  * Tests the bordered squared mirrored integral image function.
232  * @param width The width of the source frame in pixel, with range [1, infinity)
233  * @param height The height of the source frame in pixel, with range [1, infinity)
234  * @param testDuration Number of seconds for each test, with range (0, infinity)
235  * @return True, if succeeded
236  */
237  static bool testBorderedIntegralImageSquaredMirror(const unsigned int width, const unsigned int height, const double testDuration);
238 
239  /**
240  * Tests the bordered squared mirrored integral image function.
241  * @param width The width of the source frame in pixel, with range [1, infinity)
242  * @param height The height of the source frame in pixel, with range [1, infinity)
243  * @param testDuration Number of seconds for each test, with range (0, infinity)
244  * @return True, if succeeded
245  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
246  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
247  * @tparam tChannels The number of channels the source frame has, with range [1, infinity)
248  */
249  template <typename T, typename TIntegral, unsigned int tChannels>
250  static bool testBorderedIntegralImageSquaredMirror(const unsigned int width, const unsigned int height, const double testDuration);
251 
252  /**
253  * Tests the bordered squared mirrored integral image function.
254  * @param testDuration Number of seconds for each test, with range (0, infinity)
255  * @return True, if succeeded
256  */
257  static bool testVarianceCalculation(const double testDuration);
258 
259  /**
260  * Tests the variance calculation function.
261  * @param testDuration Number of seconds for each test, with range (0, infinity)
262  * @return True, if succeeded
263  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
264  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
265  * @tparam TIntegralSquared The data type of each integral element, e.g., 'unsigned long long'
266  * @tparam TVariance The data type of the variance, e.g., `float` or `double`
267  */
268  template <typename T, typename TIntegral, typename TIntegralSquared, typename TVariance>
269  static bool testVarianceCalculation(const double testDuration);
270 
271  /**
272  * Tests the bordered squared mirrored integral image function.
273  * @param testDuration Number of seconds for each test, with range (0, infinity)
274  * @return True, if succeeded
275  */
276  static bool testVarianceCalculationTwoRegions(const double testDuration);
277 
278  /**
279  * Tests the variance calculation function for two joined regions.
280  * @param testDuration Number of seconds for each test, with range (0, infinity)
281  * @return True, if succeeded
282  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
283  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
284  * @tparam TIntegralSquared The data type of each integral element, e.g., 'unsigned long long'
285  * @tparam TVariance The data type of the variance, e.g., `float` or `double`
286  */
287  template <typename T, typename TIntegral, typename TIntegralSquared, typename TVariance>
288  static bool testVarianceCalculationTwoRegions(const double testDuration);
289 
290  private:
291 
292  /**
293  * Validates the integral image without border.
294  * @param source The source frame from which the integral image has been created, must be valid
295  * @param integral The integral image to be validated, must be valid
296  * @param width The width of source frame (and integral image) in pixel, with range [1, infinity)
297  * @param height The height of source frame (and integral image) in pixel, with range [1, infinity)
298  * @param channels The number of frame channels, with range [1, infinity)
299  * @param sourcePaddingElements The number of padding elements at the end of each source row, with range [0, infinity)
300  * @param integralPaddingElements The number of padding elements at the end of each integral row, with range [0, infinity)
301  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
302  * @return True, if succeeded
303  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
304  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
305  */
306  template <typename T, typename TIntegral>
307  static bool validateIntegralImage(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int channels, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks = 20u);
308 
309  /**
310  * Validates the integral image with border.
311  * @param source The source frame from which the integral image has been created, must be valid
312  * @param integral The integral image to be validated, must be valid
313  * @param width The width of original image in pixel, with range [1, infinity)
314  * @param height The height of original image in pixel, with range [1, infinity)
315  * @param channels The number of channels the given image (and integral image has), with range [1, infinity)
316  * @param border The border of the integral image, in pixel, with range [1, infinity)
317  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
318  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
319  * @return True, if succeeded
320  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
321  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
322  */
323  template <typename T, typename TIntegral>
324  static bool validateBorderedIntegralImage(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int channels, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements);
325 
326  /**
327  * Validates the integral image with border.
328  * @param source The source frame from which the integral image has been created, must be valid
329  * @param integral The integral image to be validated, must be valid
330  * @param width The width of original image in pixel, with range [1, infinity)
331  * @param height The height of original image in pixel, with range [1, infinity)
332  * @param border The border of the integral image, in pixel, with range [1, infinity)
333  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
334  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
335  * @return True, if succeeded
336  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
337  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
338  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
339  */
340  template <typename T, typename TIntegral, unsigned int tChannels>
341  static bool validateBorderedIntegralImage(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements);
342 
343  /**
344  * Validates the squared integral image with border.
345  * @param source The source frame from which the integral image has been created, must be valid
346  * @param integral The integral image to be validated, must be valid
347  * @param width The width of original image in pixel, with range [1, infinity)
348  * @param height The height of original image in pixel, with range [1, infinity)
349  * @param border The border of the integral image, in pixel, with range [1, infinity)
350  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
351  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
352  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
353  * @return True, if succeeded
354  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
355  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
356  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
357  */
358  template <typename T, typename TIntegral, unsigned int tChannels>
359  static bool validateBorderedIntegralImageSquared(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks = 20u);
360 
361  /**
362  * Validates the joined integral and squared integral image with border.
363  * @param source The source frame from which the integral image has been created, must be valid
364  * @param integralAndSquared The integral image to be validated, must be valid
365  * @param width The width of original image in pixel, with range [1, infinity)
366  * @param height The height of original image in pixel, with range [1, infinity)
367  * @param border The border of the integral image, in pixel, with range [1, infinity)
368  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
369  * @param integralAndSquaredPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
370  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
371  * @return True, if succeeded
372  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
373  * @tparam TIntegralAndSquared The data type of each integral element, e.g., 'unsigned int'
374  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
375  */
376  template <typename T, typename TIntegralAndSquared, unsigned int tChannels>
377  static bool validateBorderedIntegralImageAndSquaredJoined(const T* source, const TIntegralAndSquared* integralAndSquared, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralAndSquaredPaddingElements, const unsigned int validationChecks = 20u);
378 
379  /**
380  * Validates the separate integral and squared integral image with border.
381  * @param source The source frame from which the integral image has been created, must be valid
382  * @param integral The integral image to be validated, must be valid
383  * @param integralSquared The integral squared image to be validated, must be valid
384  * @param width The width of original image in pixel, with range [1, infinity)
385  * @param height The height of original image in pixel, with range [1, infinity)
386  * @param border The border of the integral image, in pixel, with range [1, infinity)
387  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
388  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
389  * @param integralSquaredPaddingElements Optional number of padding elements at the end of each row of the integral squared image, with range [0, infinity)
390  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
391  * @return True, if succeeded
392  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
393  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
394  * @tparam TIntegralSquared The data type of each integral squared element, e.g., 'unsigned long long'
395  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
396  */
397  template <typename T, typename TIntegral, typename TIntegralSquared, unsigned int tChannels>
398  static bool validateBorderedIntegralImageAndSquaredSeparate(const T* source, const TIntegral* integral, const TIntegralSquared* integralSquared, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int integralSquaredPaddingElements, const unsigned int validationChecks = 20u);
399 
400  /**
401  * Validates the mirrored integral image with border.
402  * @param source The source frame from which the integral image has been created, must be valid
403  * @param integral The integral image to be validated, must be valid
404  * @param width The width of original image in pixel, with range [1, infinity)
405  * @param height The height of original image in pixel, with range [1, infinity)
406  * @param border The border of the integral image, in pixel, with range [1, infinity)
407  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
408  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
409  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
410  * @return True, if succeeded
411  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
412  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
413  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
414  */
415  template <typename T, typename TIntegral, unsigned int tChannels>
416  static bool validateBorderedIntegralImageMirror(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks = 20u);
417 
418  /**
419  * Validates the squared mirrored integral image with border.
420  * @param source The source frame from which the integral image has been created, must be valid
421  * @param integral The integral image to be validated, must be valid
422  * @param width The width of original image in pixel, with range [1, infinity)
423  * @param height The height of original image in pixel, with range [1, infinity)
424  * @param border The border of the integral image, in pixel, with range [1, infinity)
425  * @param sourcePaddingElements Optional number of padding elements at the end of each row of the source image, with range [0, infinity)
426  * @param integralPaddingElements Optional number of padding elements at the end of each row of the integral image, with range [0, infinity)
427  * @param validationChecks The number of random validation checks to be done, with range [1, infinity)
428  * @return True, if succeeded
429  * @tparam T The data type of each source elements, e.g,. 'unsigned char'
430  * @tparam TIntegral The data type of each integral element, e.g., 'unsigned int'
431  * @tparam tChannels The number of channels the given image (and integral image has), with range [1, infinity)
432  */
433  template <typename T, typename TIntegral, unsigned int tChannels>
434  static bool validateBorderedIntegralImageSquaredMirror(const T* source, const TIntegral* integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks = 20u);
435 };
436 
437 }
438 
439 }
440 
441 }
442 
443 #endif // META_OCEAN_TEST_TESTCV_TEST_INTEGRAL_IMAGE_H
This class implements an integral image tester.
Definition: TestIntegralImage.h:27
static bool testBorderedIntegralImageMirror(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered mirrored integral image function.
static bool testBorderedIntegralImageSquaredMirror(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered squared mirrored integral image function.
static bool validateBorderedIntegralImageMirror(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks=20u)
Validates the mirrored integral image with border.
static bool validateBorderedIntegralImageSquaredMirror(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks=20u)
Validates the squared mirrored integral image with border.
static bool testVarianceCalculation(const double testDuration)
Tests the bordered squared mirrored integral image function.
static bool testBorderedIntegralImageMirror(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered mirrored integral image function.
static bool testBorderedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered squared integral image function.
static bool testBorderedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered integral image function.
static bool testLinedIntegralImageAndSquaredSeparate(const unsigned int width, const unsigned int height, const double testDuration)
Tests the separate lined integral and squared integral image function.
static bool testLinedIntegralImageAndSquaredSeparate(const unsigned int width, const unsigned int height, const double testDuration)
Tests the separate lined integral and squared integral image function.
static bool validateBorderedIntegralImage(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int channels, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements)
Validates the integral image with border.
static bool testVarianceCalculationTwoRegions(const double testDuration)
Tests the variance calculation function for two joined regions.
static bool testVarianceCalculation(const double testDuration)
Tests the variance calculation function.
static bool testLinedIntegralImageAndSquaredJoined(const unsigned int width, const unsigned int height, const double testDuration)
Tests the joined lined integral and squared integral image function.
static bool testBorderedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered integral image function.
static bool testLinedIntegralImageAndSquaredJoined(const unsigned int width, const unsigned int height, const double testDuration)
Tests the joined lined integral and squared integral image function.
static bool validateBorderedIntegralImageSquared(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks=20u)
Validates the squared integral image with border.
static bool testBorderedIntegralImageComfort(const double testDuration)
Tests the comfort function for bordered integral images.
static bool validateBorderedIntegralImageAndSquaredSeparate(const T *source, const TIntegral *integral, const TIntegralSquared *integralSquared, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int integralSquaredPaddingElements, const unsigned int validationChecks=20u)
Validates the separate integral and squared integral image with border.
static bool testLinedIntegralImageComfort(const double testDuration)
Tests the comfort function for lined integral images.
static bool testBorderedIntegralImageSquaredMirror(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered squared mirrored integral image function.
static bool testLinedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the lined integral image function.
static bool validateBorderedIntegralImageAndSquaredJoined(const T *source, const TIntegralAndSquared *integralAndSquared, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralAndSquaredPaddingElements, const unsigned int validationChecks=20u)
Validates the joined integral and squared integral image with border.
static bool testLinedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration)
Tests the lined squared integral image function.
static bool testIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the standard integral image function without any border.
static bool testLinedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration)
Tests the lined squared integral image function.
static bool testIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the standard integral image function without any border.
static bool testLinedIntegralImage(const unsigned int width, const unsigned int height, const double testDuration)
Tests the lined integral image function.
static bool validateIntegralImage(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int channels, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements, const unsigned int validationChecks=20u)
Validates the integral image without border.
static bool testVarianceCalculationTwoRegions(const double testDuration)
Tests the bordered squared mirrored integral image function.
static bool test(const unsigned int width, const unsigned int height, const double testDuration)
Tests all integral image functions.
static bool testBorderedIntegralImageSquared(const unsigned int width, const unsigned int height, const double testDuration)
Tests the bordered squared integral image function.
static bool validateBorderedIntegralImage(const T *source, const TIntegral *integral, const unsigned int width, const unsigned int height, const unsigned int border, const unsigned int sourcePaddingElements, const unsigned int integralPaddingElements)
Validates the integral image with border.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15