From add77cae4e9bbbb8d1b1197c0bace9ee69467685 Mon Sep 17 00:00:00 2001
From: ctraizet <cedric.traizet@c-s.fr>
Date: Mon, 18 Mar 2019 15:49:33 +0100
Subject: [PATCH] REFAC: replace HooverColorMapping by a functorImageFilter

---
 .../app/otbHooverCompareSegmentation.cxx      | 29 +++++++++----------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/Modules/Applications/AppSegmentation/app/otbHooverCompareSegmentation.cxx b/Modules/Applications/AppSegmentation/app/otbHooverCompareSegmentation.cxx
index 00c6e4a06c..86f6ba709a 100644
--- a/Modules/Applications/AppSegmentation/app/otbHooverCompareSegmentation.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbHooverCompareSegmentation.cxx
@@ -26,7 +26,7 @@
 #include "otbLabelMapToAttributeImageFilter.h"
 
 #include "itkLabelImageToLabelMapFilter.h"
-#include "otbUnaryFunctorImageFilter.h"
+#include "otbFunctorImageFilter.h"
 
 namespace otb
 {
@@ -43,10 +43,11 @@ public:
 
   typedef std::vector<TOutput> ColorListType;
 
-  unsigned int GetOutputSize()
+  size_t OutputSize(const std::array<size_t,1> & itkNotUsed(nbBands)) const
   {
     return 3;
   }
+  
   void AddColor(const TOutput& color)
   {
     m_ScoreColors.push_back(color);
@@ -123,10 +124,8 @@ public:
   typedef otb::HooverInstanceFilter<LabelMapType>   InstanceFilterType;
   typedef otb::LabelMapToAttributeImageFilter
       <LabelMapType, FloatVectorImageType>          AttributeImageFilterType;
-  typedef otb::UnaryFunctorImageFilter
-      <FloatVectorImageType,
-       Int16VectorImageType,
-       Functor::HooverColorMapping
+  typedef otb::FunctorImageFilter
+      <Functor::HooverColorMapping
         <FloatPixelType, Int16PixelType> >          HooverColorFilterType;
 
 private:
@@ -259,31 +258,31 @@ private:
     colorPixel[0] = 255;
     colorPixel[1] = 255;
     colorPixel[2] = 255;
-    m_GTColorFilter->GetFunctor().SetBackground(colorPixel);
-    m_MSColorFilter->GetFunctor().SetBackground(colorPixel);
+    m_GTColorFilter->GetModifiableFunctor().SetBackground(colorPixel);
+    m_MSColorFilter->GetModifiableFunctor().SetBackground(colorPixel);
     // Correct detection : green
     colorPixel[0] = 0;
     colorPixel[1] = 255;
     colorPixel[2] = 0;
-    m_GTColorFilter->GetFunctor().AddColor(colorPixel);
-    m_MSColorFilter->GetFunctor().AddColor(colorPixel);
+    m_GTColorFilter->GetModifiableFunctor().AddColor(colorPixel);
+    m_MSColorFilter->GetModifiableFunctor().AddColor(colorPixel);
     // Over-segmentation : magenta
     colorPixel[0] = 255;
     colorPixel[1] = 0;
     colorPixel[2] = 255;
-    m_GTColorFilter->GetFunctor().AddColor(colorPixel);
-    m_MSColorFilter->GetFunctor().AddColor(colorPixel);
+    m_GTColorFilter->GetModifiableFunctor().AddColor(colorPixel);
+    m_MSColorFilter->GetModifiableFunctor().AddColor(colorPixel);
     // Under-segmentation : cyan
     colorPixel[0] = 0;
     colorPixel[1] = 255;
     colorPixel[2] = 255;
-    m_GTColorFilter->GetFunctor().AddColor(colorPixel);
-    m_MSColorFilter->GetFunctor().AddColor(colorPixel);
+    m_GTColorFilter->GetModifiableFunctor().AddColor(colorPixel);
+    m_MSColorFilter->GetModifiableFunctor().AddColor(colorPixel);
     // Missed detection (only for GT) : red
     colorPixel[0] = 255;
     colorPixel[1] = 0;
     colorPixel[2] = 0;
-    m_GTColorFilter->GetFunctor().AddColor(colorPixel);
+    m_GTColorFilter->GetModifiableFunctor().AddColor(colorPixel);
 
     if (HasValue("outgt"))
       {
-- 
GitLab