Skip to content
Snippets Groups Projects
Commit 66b1018c authored by Aurélien Bricier's avatar Aurélien Bricier
Browse files

ENH: prepared class for cost function interfacing + clean the code

parent 4956c4ce
No related branches found
No related tags found
Loading
......@@ -136,8 +136,18 @@ public:
if (model.size() != 4)
{
itkExceptionMacro(<< "Wrong model!")
itkExceptionMacro(<< "Wrong model! Size(="
<< model.size()
<< ") > 4" )
}
else if (model[0]<0 || model[1]<model[0] || model[2]<model[1] || model[2]>1)
{
itkExceptionMacro(<< "Wrong model! Values have to be 0<=v1<=v2<=v3<=1" )
}
else if (model[3]<.75 || model[3]>1)
{
itkExceptionMacro(<< "Wrong model! Values have to be 0.75<=v4<=1" )
}
else
{
for (unsigned j=0; j<nbDescriptor; j++)
......@@ -152,7 +162,7 @@ public:
}
else
{
itkExceptionMacro(<< "Wrong model!")
itkExceptionMacro(<< "Wrong model! Value must be between 0 and 1")
}
}
}
......@@ -171,6 +181,11 @@ public:
m_Hypothesis = hypothesis;
}
unsigned int GetNumberOfParameters()
{
return (m_DescriptorModels.size() * 4);
}
protected:
/** Triggers the Computation */
......
......@@ -106,7 +106,6 @@ VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
}
//Initialize parser
//std::cout << m_CriterionFormula << std::endl;
m_Parser->SetExpr(m_CriterionFormula);
m_Parser->DefineVar("Belief", &m_Bel);
m_Parser->DefineVar("Plausibility", &m_Plau);
......@@ -154,12 +153,6 @@ VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
mass->SetMass(H, m_FuzzyVars[i]->GetMembership(fuzName, currentGeometry->GetFieldAsDouble(fuzName)));
mass->SetMass(H_, m_FuzzyVars[i]->GetMembership(fuzName_, currentGeometry->GetFieldAsDouble(fuzName)));
/*
std::cout << fuzName << " : " << currentGeometry->GetFieldAsDouble(fuzName)
<< " " << m_FuzzyVars[i]->GetMembership(fuzName, currentGeometry->GetFieldAsInt(fuzName)) << std::endl;
std::cout << fuzName_ << " : " << currentGeometry->GetFieldAsDouble(fuzName)
<< " " << m_FuzzyVars[i]->GetMembership(fuzName_, currentGeometry->GetFieldAsDouble(fuzName)) << std::endl;
*/
mass->EstimateUncertainty();
jointMassFilter->PushBackInput(mass);
......@@ -168,21 +161,14 @@ VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
jointMassFilter->Update();
m_Bel = jointMassFilter->GetOutput()->GetBelief(m_Hypothesis);
m_Plau = jointMassFilter->GetOutput()->GetPlausibility(m_Hypothesis);
/*
std::cout << "Bel : " << m_Bel << std::endl;
std::cout << "Plau: " << m_Plau << std::endl;
*/
if (m_Parser->Eval())
if (m_Parser->Eval())
{
//std::cout << "Feature Validated : " << m_Parser->Eval() << std::endl;
currentGeometry->SetNodeId(this->GetNextID());
currentGeometry->SetFieldAsDouble("Belief", m_Bel);
currentGeometry->SetFieldAsDouble("Plausi", m_Plau);
this->GetOutput(0)->GetDataTree()->Add(currentGeometry, folder);
}
else
{
//std::cout << "Feature Rejected : " << m_Parser->Eval() << std::endl;
}
//itVector.GoToEnd(); //TEST ONLY###########################################
}
++itVector;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment