From 3176a1e15e724e0d30bb7c978f3878447642b1e9 Mon Sep 17 00:00:00 2001 From: Damian Kowalski Date: Sun, 7 Apr 2024 14:29:53 +0200 Subject: [PATCH] linear blur --- src/core/transformations/blur_linear.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/core/transformations/blur_linear.cpp b/src/core/transformations/blur_linear.cpp index c24f9e8..f5d482c 100644 --- a/src/core/transformations/blur_linear.cpp +++ b/src/core/transformations/blur_linear.cpp @@ -10,15 +10,32 @@ BlurLinear::BlurLinear(PNM* img, ImageViewer* iv) : { } -PNM* BlurLinear::transform() -{ +PNM* BlurLinear::transform() { int maskSize = getParameter("size").toInt(); QList tmpMask = getParameter("mask").toList(); bool normalize = getParameter("normalize").toBool(); math::matrix mask(maskSize, maskSize); - qDebug() << Q_FUNC_INFO << "Not implemented yet!"; + int currentMask = 0; + for (int x = 0; x < maskSize; x++) { + for (int y = 0; y < maskSize; y++) { + mask(x, y) = tmpMask.at(currentMask).toDouble(); + currentMask++; + } + } + + if (normalize) { + float summed = sum(mask); + if (summed == 0) { + summed = 1.0; + } + for (int x = 0; x < maskSize; x++) { + for (int y = 0; y < maskSize; y++) { + mask(x, y) /= summed; + } + } + } return convolute(mask, RepeatEdge); }