From bdd371ef26cd7ea2397e5434fb61734e9dc0084d Mon Sep 17 00:00:00 2001
From: Moritz Maxeiner <mm@ucw.sh>
Date: Fri, 29 Jul 2022 18:49:53 +0200
Subject: [PATCH] Calculate and show masked grayscale image

---
 Src/Model/BioTrackerTrackingAlgorithm.cpp                 | 5 +++++
 .../imageProcessor/preprocessor/ImagePreProcessor.cpp     | 8 ++++++++
 Src/View/TrackerParameterView.ui                          | 5 +++++
 3 files changed, 18 insertions(+)

diff --git a/Src/Model/BioTrackerTrackingAlgorithm.cpp b/Src/Model/BioTrackerTrackingAlgorithm.cpp
index f615e6e..f48cef5 100644
--- a/Src/Model/BioTrackerTrackingAlgorithm.cpp
+++ b/Src/Model/BioTrackerTrackingAlgorithm.cpp
@@ -104,6 +104,11 @@ void BioTrackerTrackingAlgorithm::sendSelectedImage(
         Q_EMIT emitCvMatA(sendImage, QString("Closed Mask"));
         Q_EMIT emitChangeDisplayImage(QString("Closed Mask"));
         break;
+    case 5:
+        sendImage = images->find(std::string("Masked Greyscale"))->second;
+        Q_EMIT emitCvMatA(sendImage, QString("Masked Greyscale"));
+        Q_EMIT emitChangeDisplayImage(QString("Masked Greyscale"));
+        break;
     }
 }
 
diff --git a/Src/Model/TrackingAlgorithm/imageProcessor/preprocessor/ImagePreProcessor.cpp b/Src/Model/TrackingAlgorithm/imageProcessor/preprocessor/ImagePreProcessor.cpp
index 872a624..92c2ab0 100644
--- a/Src/Model/TrackingAlgorithm/imageProcessor/preprocessor/ImagePreProcessor.cpp
+++ b/Src/Model/TrackingAlgorithm/imageProcessor/preprocessor/ImagePreProcessor.cpp
@@ -105,6 +105,8 @@ std::map<std::string, std::shared_ptr<cv::Mat>> ImagePreProcessor::preProcess(
     std::shared_ptr<cv::Mat> openedMask = std::make_shared<cv::Mat>();
     std::shared_ptr<cv::Mat> closedMask = std::make_shared<cv::Mat>();
 
+    std::shared_ptr<cv::Mat> maskedGrey = std::make_shared<cv::Mat>();
+
     cv::cvtColor(*p_image, *greyMat, cv::COLOR_BGR2GRAY);
 
     // 1. step: do the background subtraction
@@ -119,6 +121,9 @@ std::map<std::string, std::shared_ptr<cv::Mat>> ImagePreProcessor::preProcess(
     *closedMask = erode(
         dilate(*openedMask, m_TrackingParameter->getClosingDilationSize()),
         m_TrackingParameter->getClosingErosionSize());
+    
+    // 4. step: masked greyscale image
+    greyMat->copyTo(*maskedGrey, *closedMask);
 
     std::map<std::string, std::shared_ptr<cv::Mat>> all;
     all.insert(std::pair<std::string, std::shared_ptr<cv::Mat>>(
@@ -136,6 +141,9 @@ std::map<std::string, std::shared_ptr<cv::Mat>> ImagePreProcessor::preProcess(
     all.insert(std::pair<std::string, std::shared_ptr<cv::Mat>>(
         std::string("Closed Mask"),
         closedMask));
+    all.insert(std::pair<std::string, std::shared_ptr<cv::Mat>>(
+        std::string("Masked Greyscale"),
+        maskedGrey));
 
     return all;
 }
diff --git a/Src/View/TrackerParameterView.ui b/Src/View/TrackerParameterView.ui
index d3aaeff..26d1e8f 100644
--- a/Src/View/TrackerParameterView.ui
+++ b/Src/View/TrackerParameterView.ui
@@ -475,6 +475,11 @@
                   <string>Closed Mask</string>
                  </property>
                 </item>
+                <item>
+                 <property name="text">
+                  <string>Masked Greyscale</string>
+                 </property>
+                </item>
                </widget>
               </item>
              </layout>
-- 
GitLab