aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/Helpers.cpp
diff options
context:
space:
mode:
authorMoritz Pflanzer <moritz.pflanzer@arm.com>2017-09-24 12:09:41 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit6c6597c1e17c32c6ad861780eee454a7deecfb75 (patch)
tree5df015557262a83e5e84a5fa365544bb1aa66762 /tests/validation/Helpers.cpp
parentc26ecf8ca13205cab2ce43d9f971e1569808e5bc (diff)
downloadComputeLibrary-6c6597c1e17c32c6ad861780eee454a7deecfb75.tar.gz
COMPMID-500: Move HarrisCorners to new validation
Change-Id: I4e21ad98d029e360010c5927f04b716527700a00 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/88888 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'tests/validation/Helpers.cpp')
-rw-r--r--tests/validation/Helpers.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/validation/Helpers.cpp b/tests/validation/Helpers.cpp
index d3bcbbd9e4..23ad62a6c3 100644
--- a/tests/validation/Helpers.cpp
+++ b/tests/validation/Helpers.cpp
@@ -29,6 +29,48 @@ namespace test
{
namespace validation
{
+void fill_mask_from_pattern(uint8_t *mask, int cols, int rows, MatrixPattern pattern)
+{
+ unsigned int v = 0;
+ std::mt19937 gen(library->seed());
+ std::bernoulli_distribution dist(0.5);
+
+ for(int r = 0; r < rows; ++r)
+ {
+ for(int c = 0; c < cols; ++c, ++v)
+ {
+ uint8_t val = 0;
+
+ switch(pattern)
+ {
+ case MatrixPattern::BOX:
+ val = 255;
+ break;
+ case MatrixPattern::CROSS:
+ val = ((r == (rows / 2)) || (c == (cols / 2))) ? 255 : 0;
+ break;
+ case MatrixPattern::DISK:
+ val = (((r - rows / 2.0f + 0.5f) * (r - rows / 2.0f + 0.5f)) / ((rows / 2.0f) * (rows / 2.0f)) + ((c - cols / 2.0f + 0.5f) * (c - cols / 2.0f + 0.5f)) / ((cols / 2.0f) *
+ (cols / 2.0f))) <= 1.0f ? 255 : 0;
+ break;
+ case MatrixPattern::OTHER:
+ val = (dist(gen) ? 0 : 255);
+ break;
+ default:
+ return;
+ }
+
+ mask[v] = val;
+ }
+ }
+
+ if(pattern == MatrixPattern::OTHER)
+ {
+ std::uniform_int_distribution<uint8_t> distribution_u8(0, ((cols * rows) - 1));
+ mask[distribution_u8(gen)] = 255;
+ }
+}
+
TensorShape calculate_depth_concatenate_shape(const std::vector<TensorShape> &input_shapes)
{
ARM_COMPUTE_ERROR_ON(input_shapes.empty());
@@ -52,6 +94,24 @@ TensorShape calculate_depth_concatenate_shape(const std::vector<TensorShape> &in
return out_shape;
}
+
+HarrisCornersParameters harris_corners_parameters()
+{
+ HarrisCornersParameters params;
+
+ std::mt19937 gen(library->seed());
+ std::uniform_real_distribution<float> threshold_dist(0.f, 0.01f);
+ std::uniform_real_distribution<float> sensitivity(0.04f, 0.15f);
+ std::uniform_real_distribution<float> euclidean_distance(0.f, 30.f);
+ std::uniform_int_distribution<uint8_t> int_dist(0, 255);
+
+ params.threshold = threshold_dist(gen);
+ params.sensitivity = sensitivity(gen);
+ params.min_dist = euclidean_distance(gen);
+ params.constant_border_value = int_dist(gen);
+
+ return params;
+}
} // namespace validation
} // namespace test
} // namespace arm_compute