summaryrefslogtreecommitdiff
path: root/utils/tuning/libtuning/smoothing.py
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2022-11-11 02:05:53 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2022-11-25 15:37:26 +0900
commitdb99d966633c5d7a5b33d03d653f1839d9feaaea (patch)
tree392733c7b0bfc3fb06a865a1f990db65a0af8bf6 /utils/tuning/libtuning/smoothing.py
parent19dc8c28f63c2dc8842b88c1fd45c999c7171398 (diff)
utils: tuning: libtuning: Implement math helpers
Implement math helpers for libtuning. This includes: - Average, a wrapper class for numpy averaging functions - Gradient, a class that represents gradients, for distributing and mapping - Smoothing, a wrapper class for cv2 smoothing functions Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'utils/tuning/libtuning/smoothing.py')
-rw-r--r--utils/tuning/libtuning/smoothing.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/utils/tuning/libtuning/smoothing.py b/utils/tuning/libtuning/smoothing.py
new file mode 100644
index 00000000..b8a5a242
--- /dev/null
+++ b/utils/tuning/libtuning/smoothing.py
@@ -0,0 +1,24 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
+#
+# smoothing.py - Wrapper for cv2 smoothing functions to enable duck-typing
+
+import cv2
+
+
+# @brief Wrapper for cv2 smoothing functions so that they can be duck-typed
+class Smoothing(object):
+ def __init__(self):
+ pass
+
+ def smoothing(self, src):
+ raise NotImplementedError
+
+
+class MedianBlur(Smoothing):
+ def __init__(self, ksize):
+ self.ksize = ksize
+
+ def smoothing(self, src):
+ return cv2.medianBlur(src.astype('float32'), self.ksize).astype('float64')