Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
This software is distributed WITHOUT ANY WARRANTY; without even
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
- ======================================================================-====*/
+ ===========================================================================**/
#ifndef CLITKBOOLEANOPERATORLABELIMAGEFILTER_TXX
#define CLITKBOOLEANOPERATORLABELIMAGEFILTER_TXX
#include "clitkCommon.h"
#include "clitkBooleanOperatorLabelImageFilter.h"
-#include "clitkSegmentationUtils.h"
+#include "clitkBoundingBoxUtils.h"
namespace clitk {
static const unsigned int Dim = Input1ImageType::ImageDimension;
for(unsigned int i=0; i<Dim; i++) {
if (input1->GetSpacing()[i] != input2->GetSpacing()[i]) {
- itkExceptionMacro(<< "Input 1&2 must have the same spacing. " << std::endl
- << "\t input1 = " << input1->GetSpacing() << std::endl
- << "\t input2 = " << input2->GetSpacing() << std::endl);
+ clitkExceptionMacro("Input 1&2 must have the same spacing. " << std::endl
+ << "\t input1 = " << input1->GetSpacing() << std::endl
+ << "\t input2 = " << input2->GetSpacing() << std::endl);
}
// if (input1->GetLargestPossibleRegion().GetSize()[i] != input2->GetLargestPossibleRegion().GetSize()[i]) {
// itkExceptionMacro(<< "Input 1&2 must have the same size. " << std::endl
ComputeRegionFromBB<Input1ImageType>(input1, bb, input1Region);
ComputeRegionFromBB<Input2ImageType>(input2, bb, input2Region);
ComputeRegionFromBB<OutputImageType>(outputImage, bb, outputRegion);
-
}
//--------------------------------------------------------------------
switch (m_OperationType) {
case AndNot: LoopAndNot(it1, it2, ot); break;
case And: LoopAnd(it1, it2, ot); break;
+ case Or: LoopOr(it1, it2, ot); break;
}
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
LOOP_BEGIN(LoopAndNot)
- if ((it1.Get() != mBackgroundValue1) && (it2.Get() == mBackgroundValue2)) { ot.Set(mForegroundValue); }
+ if ((it1.Get() != mBackgroundValue1) && (it2.Get() == mBackgroundValue2))
+ { ot.Set(mForegroundValue); }
else { ot.Set(mBackgroundValue); }
LOOP_END
//--------------------------------------------------------------------
//--------------------------------------------------------------------
LOOP_BEGIN(LoopAnd)
- if ((it1.Get() != mBackgroundValue1) && (it2.Get() != mBackgroundValue2)) { ot.Set(mForegroundValue); }
+ if ((it1.Get() != mBackgroundValue1) && (it2.Get() != mBackgroundValue2))
+ { ot.Set(mForegroundValue); }
+ else { ot.Set(mBackgroundValue); }
+ LOOP_END
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ LOOP_BEGIN(LoopOr)
+ if ((it1.Get() != mBackgroundValue1) || (it2.Get() != mBackgroundValue2))
+ { ot.Set(mForegroundValue); }
else { ot.Set(mBackgroundValue); }
LOOP_END
//--------------------------------------------------------------------