Ocean
Loading...
Searching...
No Matches
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
13namespace Ocean
14{
15
16namespace Test
17{
18
19namespace TestCV
20{
21
22/**
23 * This class implements an integral image tester.
24 * @ingroup testcv
25 */
26class 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