Skip to content
Snippets Groups Projects
Commit fc79b9d9 authored by Jonathan Guinet's avatar Jonathan Guinet
Browse files

BUG: infinite loop if no polygon is present in image ROI.

parent d7715b90
No related branches found
No related tags found
No related merge requests found
......@@ -235,8 +235,8 @@ ListSampleGenerator<TImage, TVectorData>
m_ClassesSize.clear();
//Compute pixel area:
typename ImageType::Pointer image = const_cast<ImageType*>(this->GetInput());
double pixelArea = vcl_abs(image->GetSpacing()[0] * image->GetSpacing()[1]);
typename ImageType::Pointer image = const_cast<ImageType*> (this->GetInput());
double pixelArea = vcl_abs(image->GetSpacing()[0] * image->GetSpacing()[1]);
typename VectorDataType::ConstPointer vectorData = this->GetInputVectorData();
TreeIteratorType itVector(vectorData->GetDataTree());
......@@ -245,26 +245,34 @@ ListSampleGenerator<TImage, TVectorData>
{
if (itVector.Get()->IsPolygonFeature())
{
m_ClassesSize[itVector.Get()->GetFieldAsInt(m_ClassKey)] +=
itVector.Get()->GetPolygonExteriorRing()->GetArea() / pixelArea; // in pixel
m_ClassesSize[itVector.Get()->GetFieldAsInt(m_ClassKey)] += itVector.Get()->GetPolygonExteriorRing()->GetArea()
/ pixelArea; // in pixel
}
++itVector;
}
std::map<ClassLabelType, double>::const_iterator itmap = m_ClassesSize.begin();
double minSize = itmap->second;
++itmap;
while (itmap != m_ClassesSize.end())
if (!m_ClassesSize.empty())
{
if (minSize > itmap->second)
std::map<ClassLabelType, double>::const_iterator itmap = m_ClassesSize.begin();
double minSize = itmap->second;
++itmap;
while (itmap != m_ClassesSize.end())
{
minSize = itmap->second;
if (minSize > itmap->second)
{
minSize = itmap->second;
}
++itmap;
}
++itmap;
}
m_ClassMinSize = minSize;
m_NumberOfClasses = m_ClassesSize.size();
m_ClassMinSize = minSize;
m_NumberOfClasses = m_ClassesSize.size();
}
else
{
m_ClassMinSize = 0;
m_NumberOfClasses = 0;
}
}
template <class TImage, class TVectorData>
......
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