19 if (this->m_Grid.GetSize() == 0)
21 itkExceptionMacro(
"Error. Cannot compute Curve Description Parameters. No Curve Grid set!");
24 if (this->m_DescriptorMap.size() == 0)
26 itkGenericExceptionMacro( <<
27 "Error. Cannot compute Curve Description Parameters. No Parameters registered!");
32 for (CurveDescriptionParameterBase::CurveType::SizeValueType i = 0; i < sample.Size(); ++i)
34 sample[i] = value [i];
38 result.reserve(m_DescriptorMap.size());
42 for (DescriptionParameterMapType::const_iterator pos = m_DescriptorMap.begin();
43 pos != m_DescriptorMap.end(); ++pos, ++i)
46 (pos->second.GetPointer());
50 result.insert(result.end(), fctResults.begin(), fctResults.end());
55 itkGenericExceptionMacro( <<
56 "Error. Curve parameter functor has an invalid state. Number of parameter names and number of computed values does not match. Names count: " 78 m_DescriptorMap.clear();
87 m_DescriptorMap.insert(std::make_pair(parameterName, paramFunctPtr));
95 for (
auto descriptor : m_DescriptorMap)
98 descriptor.second->GetDescriptionParameterName();
100 if (fctResults.size() > 1)
102 for (
auto fctName : fctResults)
104 result.push_back(descriptor.first +
"_" + fctName);
109 result.push_back(descriptor.first);
121 DescriptionParameterMapType::const_iterator pos = m_DescriptorMap.find(parameterName);
123 if (pos != m_DescriptorMap.end())
125 result = (pos->second).GetPointer();
SimpleFunctorBase::OutputPixelVectorType Compute(const InputPixelVectorType &value) const override
void ResetDescriptionParameters()
void RegisterDescriptionParameter(const ParameterNameType ¶meterName, CurveDescriptionParameterBase *parameterFunction)
ParameterNamesType GetDescriptionParameterNames() const
unsigned int GetNumberOfOutputs() const override
GridArrayType GetGrid() const override
std::vector< CurveDescriptionParameterResultType > DescriptionParameterResultsType
~CurveParameterFunctor() override
std::vector< InputImagePixelType > InputPixelVectorType
std::vector< CurveDescriptionParameterNameType > DescriptionParameterNamesType
CurveDescriptionParameterBase::DescriptionParameterNamesType ParameterNamesType
itk::Array< double > CurveType
std::vector< InputImagePixelType > OutputPixelVectorType
DescriptionParameterResultsType GetCurveDescriptionParameter(const CurveType &curve, const CurveGridType &grid) const
SimpleFunctorBase::GridArrayType GridArrayType
const CurveDescriptionParameterBase * GetDescriptionParameterFunction(const ParameterNameType ¶meterName) const