21 #ifndef otbMultiScaleConvexOrConcaveClassificationFilter_h
22 #define otbMultiScaleConvexOrConcaveClassificationFilter_h
30 namespace MultiScaleConvexOrConcaveDecisionRule_tags
32 struct max_opening_profile_derivative
35 struct max_closing_profile_derivative
38 struct opening_profile_characteristics
41 struct closing_profile_characteristics
80 template <
class TInput,
class TLabeled>
81 class MultiScaleConvexOrConcaveDecisionRule
88 MultiScaleConvexOrConcaveDecisionRule()
91 m_LabelSeparator = 10;
97 virtual ~MultiScaleConvexOrConcaveDecisionRule()
109 TLabeled operator()(
const TInput& opDeMax,
const TInput& cloDeMax,
const TLabeled& opDeChar,
const TLabeled& cloDeChar)
const
113 if (opDeMax > cloDeMax &&
static_cast<double>(opDeMax) > m_Sigma)
115 resp = m_LabelSeparator + opDeChar;
117 else if (cloDeMax > opDeMax &&
static_cast<double>(cloDeMax) > m_Sigma)
127 void SetSigma(
const double& sigma)
136 double GetSigma(
void)
145 void SetLabelSeparator(
const TLabeled& labelSeparator)
147 m_LabelSeparator = labelSeparator;
154 TLabeled GetLabelSeparator(
void)
156 return m_LabelSeparator;
164 TLabeled m_LabelSeparator;