From ec6e0ea40df4969f74fd316e9bd40eb7df035828 Mon Sep 17 00:00:00 2001 From: Grzegorz Klimaszewski <166530809+grzegorz-roboflow@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:45:18 +0100 Subject: [PATCH] Add 'longer' and 'shorter' keys to the output of size_measurement block --- .../core_steps/classical_cv/size_measurement/v1.py | 9 ++++++++- .../core_steps/classical_cv/test_size_measurement.py | 10 ++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/inference/core/workflows/core_steps/classical_cv/size_measurement/v1.py b/inference/core/workflows/core_steps/classical_cv/size_measurement/v1.py index 9225ee2617..6d42f0e40e 100644 --- a/inference/core/workflows/core_steps/classical_cv/size_measurement/v1.py +++ b/inference/core/workflows/core_steps/classical_cv/size_measurement/v1.py @@ -271,7 +271,14 @@ def run( if obj_w_pixels > 0 and obj_h_pixels > 0: obj_w_actual = obj_w_pixels * width_scale obj_h_actual = obj_h_pixels * height_scale - dimensions.append({"width": obj_w_actual, "height": obj_h_actual}) + dimensions.append( + { + "width": obj_w_actual, + "height": obj_h_actual, + "longer": max(obj_w_actual, obj_h_actual), + "shorter": min(obj_w_actual, obj_h_actual), + } + ) else: dimensions.append(None) diff --git a/tests/workflows/unit_tests/core_steps/classical_cv/test_size_measurement.py b/tests/workflows/unit_tests/core_steps/classical_cv/test_size_measurement.py index baa11caa25..c29af73918 100644 --- a/tests/workflows/unit_tests/core_steps/classical_cv/test_size_measurement.py +++ b/tests/workflows/unit_tests/core_steps/classical_cv/test_size_measurement.py @@ -30,7 +30,10 @@ def test_size_measurement_block(): result = block.run(reference_predictions, object_predictions, reference_dimensions) # then - expected_dimensions = [{"width": 5.0, "height": 5.0}, {"width": 5.0, "height": 5.0}] + expected_dimensions = [ + {"width": 5.0, "height": 5.0, "longer": 5.0, "shorter": 5.0}, + {"width": 5.0, "height": 5.0, "longer": 5.0, "shorter": 5.0}, + ] assert result == { OUTPUT_KEY: expected_dimensions }, f"Expected {expected_dimensions}, but got {result}" @@ -59,7 +62,10 @@ def test_size_measurement_block_with_mask(): result = block.run(reference_predictions, object_predictions, reference_dimensions) # then - expected_dimensions = [{"width": 5.0, "height": 5.0}, {"width": 5.0, "height": 5.0}] + expected_dimensions = [ + {"width": 5.0, "height": 5.0, "longer": 5.0, "shorter": 5.0}, + {"width": 5.0, "height": 5.0, "longer": 5.0, "shorter": 5.0}, + ] assert result == { OUTPUT_KEY: expected_dimensions }, f"Expected {expected_dimensions}, but got {result}"