]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractLungFilter.txx
itkv4 migration
[clitk.git] / segmentation / clitkExtractLungFilter.txx
index b7b28665baff5006bc2de75cfc158fd8be9821fe..41e79677bf88c69ebf1788418fc144695f34587b 100644 (file)
@@ -580,9 +580,6 @@ SearchForTracheaSeed(int skip)
 bool is_orientation_superior(itk::SpatialOrientation::ValidCoordinateOrientationFlags orientation)
 {
   itk::SpatialOrientation::CoordinateTerms sup = itk::SpatialOrientation::ITK_COORDINATE_Superior;
-  std::cout << "orientation: " << std::hex << orientation << "; superior: " << std::hex << sup << std::endl;
-  std::cout << std::dec;
-
   bool primary = (orientation & 0x0000ff) == sup;
   bool secondary = ((orientation & 0x00ff00) >> 8) == sup;
   bool tertiary = ((orientation & 0xff0000) >> 16) == sup;
@@ -596,7 +593,7 @@ clitk::ExtractLungFilter<ImageType>::
 SearchForTracheaSeed2(int numberOfSlices)
 {
   if (m_Seeds.size() == 0) { // try to find seed (if not zero, it is given by user)    
-    if (GetVerboseFlag())
+    if (GetVerboseRegionGrowingFlag())
       std::cout << "SearchForTracheaSeed2(" << numberOfSlices << ", " << GetMaxElongation() << ")" << std::endl;
     
     typedef unsigned char MaskPixelType;
@@ -702,18 +699,21 @@ SearchForTracheaSeed2(int numberOfSlices)
         writer->SetFileName(file_name.str().c_str());
         writer->Update();
       }
-      
-      typename LabelImageType::LabelObjectContainerType shapes_map = label_map->GetLabelObjectContainer();
-      typename LabelImageType::LabelObjectContainerType::const_iterator s;
+
       typename ShapeLabelType::Pointer shape, max_e_shape;
       double max_elongation = GetMaxElongation();
       double max_size = size[0]*size[1]/128;
       double max_e = 0;
       int nshapes = 0;
-      for (s = shapes_map.begin(); s != shapes_map.end(); s++) {
-        shape = s->second;
-        if (shape->GetSize() > 150 && shape->GetSize() <= max_size) {
+      unsigned int nlables = label_map->GetNumberOfLabelObjects();
+      for (unsigned int j = 0; j < nlables; j++) {
+        shape = label_map->GetNthLabelObject(j);
+        if (shape->Size() > 150 && shape->Size() <= max_size) {
+#if ITK_VERSION_MAJOR < 4
           double e = 1 - 1/shape->GetBinaryElongation();
+#else
+          double e = 1 - 1/shape->GetElongation();
+#endif
           //double area = 1 - r->Area() ;
           if (e < max_elongation) {
             nshapes++;
@@ -746,7 +746,7 @@ SearchForTracheaSeed2(int numberOfSlices)
         p2[2] = prev_e_centre[2];
         
         double mag = (p2 - p1).GetNorm();
-        if (GetVerboseFlag()) {
+        if (GetVerboseRegionGrowingFlag()) {
           cout.precision(3);
           cout << index[2] << ": ";
           cout << "region(" << max_e_centre[0] << ", " << max_e_centre[1] << ", " << max_e_centre[2] << "); ";
@@ -778,7 +778,7 @@ SearchForTracheaSeed2(int numberOfSlices)
       }
     }
     
-    if (GetVerboseFlag()) 
+    if (GetVerboseRegionGrowingFlag()) 
       std::cout << "seed at: " << trachea_centre << std::endl;
     m_Seeds.push_back(trachea_centre);
   }