COMPMID-378 IntegralImage testing completed.
Change-Id: I848713c8aa4382b01111af714a207f92eefcdb44
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/77878
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Steven Niu <steven.niu@arm.com>
diff --git a/tests/TensorLibrary.cpp b/tests/TensorLibrary.cpp
index 0c85136..21bb4ec 100644
--- a/tests/TensorLibrary.cpp
+++ b/tests/TensorLibrary.cpp
@@ -46,33 +46,14 @@
{
namespace
{
-void convert_rgb_to_u8(const RawTensor &src, RawTensor &dst)
+template <typename T, typename std::enable_if<std::is_integral<T>::value, int>::type = 0>
+void rgb_to_luminance(const RawTensor &src, RawTensor &dst)
{
const size_t min_size = std::min(src.size(), dst.size());
for(size_t i = 0, j = 0; i < min_size; i += 3, ++j)
{
- dst.data()[j] = 0.2126f * src.data()[i + 0] + 0.7152f * src.data()[i + 1] + 0.0722f * src.data()[i + 2];
- }
-}
-
-void convert_rgb_to_u16(const RawTensor &src, RawTensor &dst)
-{
- const size_t min_size = std::min(src.size(), dst.size());
-
- for(size_t i = 0, j = 0; i < min_size; i += 3, ++j)
- {
- reinterpret_cast<uint16_t *>(dst.data())[j] = 0.2126f * src.data()[i + 0] + 0.7152f * src.data()[i + 1] + 0.0722f * src.data()[i + 2];
- }
-}
-
-void convert_rgb_to_s16(const RawTensor &src, RawTensor &dst)
-{
- const size_t min_size = std::min(src.size(), dst.size());
-
- for(size_t i = 0, j = 0; i < min_size; i += 3, ++j)
- {
- reinterpret_cast<int16_t *>(dst.data())[j] = 0.2126f * src.data()[i + 0] + 0.7152f * src.data()[i + 1] + 0.0722f * src.data()[i + 2];
+ reinterpret_cast<T *>(dst.data())[j] = 0.2126f * src.data()[i + 0] + 0.7152f * src.data()[i + 1] + 0.0722f * src.data()[i + 2];
}
}
@@ -261,9 +242,10 @@
{
static std::map<std::pair<Format, Format>, Converter> converters =
{
- { std::make_pair(Format::RGB888, Format::U8), convert_rgb_to_u8 },
- { std::make_pair(Format::RGB888, Format::U16), convert_rgb_to_u16 },
- { std::make_pair(Format::RGB888, Format::S16), convert_rgb_to_s16 }
+ { std::make_pair(Format::RGB888, Format::U8), rgb_to_luminance<uint8_t> },
+ { std::make_pair(Format::RGB888, Format::U16), rgb_to_luminance<uint16_t> },
+ { std::make_pair(Format::RGB888, Format::S16), rgb_to_luminance<int16_t> },
+ { std::make_pair(Format::RGB888, Format::U32), rgb_to_luminance<uint32_t> }
};
const auto it = converters.find(std::make_pair(src, dst));
@@ -413,6 +395,11 @@
return _cache.add(std::make_tuple(name, format, channel), std::move(dst));
}
+TensorShape TensorLibrary::get_image_shape(const std::string &name)
+{
+ return load_image(name).shape();
+}
+
RawTensor TensorLibrary::get(const TensorShape &shape, DataType data_type, int num_channels, int fixed_point_position)
{
return RawTensor(shape, data_type, num_channels, fixed_point_position);