diff --git a/mediapipe/calculators/tensor/BUILD b/mediapipe/calculators/tensor/BUILD index 92e786b6..1a2a6b34 100644 --- a/mediapipe/calculators/tensor/BUILD +++ b/mediapipe/calculators/tensor/BUILD @@ -1324,6 +1324,7 @@ cc_test( name = "image_to_tensor_utils_test", srcs = ["image_to_tensor_utils_test.cc"], deps = [ + ":image_to_tensor_calculator_cc_proto", ":image_to_tensor_utils", "//mediapipe/framework/formats:rect_cc_proto", "//mediapipe/framework/port:gtest_main", diff --git a/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc b/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc index 14de410f..a551e7f8 100644 --- a/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc +++ b/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc @@ -330,9 +330,8 @@ class GlProcessor : public ImageToTensorConverter { absl::Status ValidateTensorShape(const Tensor::Shape& output_shape) { RET_CHECK_EQ(output_shape.dims.size(), 4) << "Wrong output dims size: " << output_shape.dims.size(); - RET_CHECK_EQ(output_shape.dims[0], 1) - << "Handling batch dimension not equal to 1 is not implemented in this " - "converter."; + RET_CHECK_GE(output_shape.dims[0], 1) + << "The batch dimension needs to be greater or equal to 1."; RET_CHECK_EQ(output_shape.dims[3], 3) << "Wrong output channel: " << output_shape.dims[3]; return absl::OkStatus(); diff --git a/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc b/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc index 9ba7d013..450bcba3 100644 --- a/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc +++ b/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc @@ -172,7 +172,7 @@ constexpr char kValidIntProto[] = R"( output_tensor_height: 200 )"; -TEST(ValidateOptionOutputDims, ValidProtos) { +TEST(ValidateOptionOutputDims, ImageToTensorCalcOptions) { const auto float_options = mediapipe::ParseTextProtoOrDie( kValidFloatProto); @@ -202,7 +202,7 @@ TEST(ValidateOptionOutputDims, EmptyProto) { HasSubstr("Valid output tensor width is required"))); } -TEST(GetOutputTensorParams, SetValues) { +TEST(GetOutputTensorParams, ImageToTensorCalcOptionsSetValues) { // Test int range with ImageToTensorCalculatorOptions. const auto int_options = mediapipe::ParseTextProtoOrDie( diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png new file mode 100644 index 00000000..02d1fe88 Binary files /dev/null and b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png differ diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png new file mode 100644 index 00000000..1238464d Binary files /dev/null and b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png differ diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png new file mode 100644 index 00000000..f9dc58e5 Binary files /dev/null and b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png differ diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect3.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect3.png new file mode 100644 index 00000000..6e451e3f Binary files /dev/null and b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect3.png differ