From 6c6597c1e17c32c6ad861780eee454a7deecfb75 Mon Sep 17 00:00:00 2001 From: Moritz Pflanzer Date: Sun, 24 Sep 2017 12:09:41 +0100 Subject: COMPMID-500: Move HarrisCorners to new validation Change-Id: I4e21ad98d029e360010c5927f04b716527700a00 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/88888 Reviewed-by: Anthony Barbier Tested-by: Kaizen --- tests/validation/Helpers.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'tests/validation/Helpers.cpp') 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 distribution_u8(0, ((cols * rows) - 1)); + mask[distribution_u8(gen)] = 255; + } +} + TensorShape calculate_depth_concatenate_shape(const std::vector &input_shapes) { ARM_COMPUTE_ERROR_ON(input_shapes.empty()); @@ -52,6 +94,24 @@ TensorShape calculate_depth_concatenate_shape(const std::vector &in return out_shape; } + +HarrisCornersParameters harris_corners_parameters() +{ + HarrisCornersParameters params; + + std::mt19937 gen(library->seed()); + std::uniform_real_distribution threshold_dist(0.f, 0.01f); + std::uniform_real_distribution sensitivity(0.04f, 0.15f); + std::uniform_real_distribution euclidean_distance(0.f, 30.f); + std::uniform_int_distribution 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 -- cgit v1.2.1