From 3107aa2152de9be8317e62da1d0327bcad6552e2 Mon Sep 17 00:00:00 2001 From: Isabella Gottardi Date: Thu, 27 Jan 2022 16:39:37 +0000 Subject: MLECO-2873: Object detection usecase follow-up Change-Id: Ic14e93a50fb7b3f3cfd9497bac1280794cc0fc15 Signed-off-by: Isabella Gottardi --- source/application/main/UseCaseCommonUtils.cc | 16 +++++++++++++++- source/application/main/include/UseCaseCommonUtils.hpp | 10 +++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'source/application') diff --git a/source/application/main/UseCaseCommonUtils.cc b/source/application/main/UseCaseCommonUtils.cc index d740d10..67e784b 100644 --- a/source/application/main/UseCaseCommonUtils.cc +++ b/source/application/main/UseCaseCommonUtils.cc @@ -91,6 +91,20 @@ bool image::PresentInferenceResult( return true; } +void image::RgbToGrayscale(const uint8_t *srcPtr, uint8_t *dstPtr, const size_t dstImgSz) +{ + float R=0.299; + float G=0.587; + float B=0.114; + for (size_t i = 0; i < dstImgSz; ++i, srcPtr += 3) { + uint32_t int_gray = R * (*srcPtr) + + G * (*(srcPtr + 1)) + + B * (*(srcPtr + 2)); + *dstPtr++ = int_gray <= std::numeric_limits::max() ? + int_gray : std::numeric_limits::max(); + } +} + void IncrementAppCtxIfmIdx(arm::app::ApplicationContext& ctx, std::string useCase) { #if NUMBER_OF_FILES > 0 @@ -227,4 +241,4 @@ bool ListFilesHandler(ApplicationContext& ctx) } } /* namespace app */ -} /* namespace arm */ \ No newline at end of file +} /* namespace arm */ diff --git a/source/application/main/include/UseCaseCommonUtils.hpp b/source/application/main/include/UseCaseCommonUtils.hpp index c91dc4a..84b5de3 100644 --- a/source/application/main/include/UseCaseCommonUtils.hpp +++ b/source/application/main/include/UseCaseCommonUtils.hpp @@ -57,7 +57,15 @@ namespace image{ **/ bool PresentInferenceResult(hal_platform & platform, const std::vector < arm::app::ClassificationResult > & results); - } + + /** + * @brief Converts RGB image to grayscale. + * @param[in] srcPtr Pointer to RGB source image. + * @param[out] dstPtr Pointer to grayscale destination image. + * @param[in] imgSz Destination image size. + **/ + void RgbToGrayscale(const uint8_t *srcPtr, uint8_t *dstPtr, const size_t dstImgSz); +} /** * @brief Helper function to increment current input feature vector index. -- cgit v1.2.1