]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractMediastinumFilter.txx
separate airway tracking from extract lung
[clitk.git] / segmentation / clitkExtractMediastinumFilter.txx
index 1f0d5f2b2bafe8fc2fae98947883f0a1948d318d..7f5ca18aec5fccdf23411fd5ae39bc06612b6a87 100644 (file)
 #include "clitkExtractMediastinumFilter.h"
 #include "clitkAddRelativePositionConstraintToLabelImageFilter.h"
 #include "clitkSegmentationUtils.h"
-#include "clitkExtractAirwayTreeInfoFilter.h"
+#include "clitkExtractAirwaysTreeInfoFilter.h"
 
-// itk
+// std
 #include <deque>
+
+// itk
 #include "itkStatisticsLabelMapFilter.h"
 #include "itkLabelImageToStatisticsLabelMapFilter.h"
 #include "itkRegionOfInterestImageFilter.h"
@@ -41,6 +43,7 @@ template <class ImageType>
 clitk::ExtractMediastinumFilter<ImageType>::
 ExtractMediastinumFilter():
   clitk::FilterBase(),
+  clitk::FilterWithAnatomicalFeatureDatabaseManagement(),
   itk::ImageToImageFilter<ImageType, ImageType>()
 {
   this->SetNumberOfRequiredInputs(4);
@@ -256,17 +259,12 @@ GenerateData()
 
   // Find ant-post coordinate of trachea (assume the carena position is a
   // good estimation of the ant-post position of the trachea)
-  typedef clitk::ExtractAirwayTreeInfoFilter<ImageType> AirwayFilter;
-  typename AirwayFilter::Pointer airwayfilter = AirwayFilter::New();
-  airwayfilter->SetVerboseStep(false);
-  airwayfilter->SetWriteStep(false);
-  airwayfilter->SetInput(trachea);
-  airwayfilter->Update();
-  DD(airwayfilter->GetFirstTracheaPoint());
-  ImagePointType point_trachea = airwayfilter->GetCarinaPoint();
+  ImagePointType carina;
+  LoadAFDB();
+  GetAFDB()->GetPoint3D("Carina", carina);
+  DD(carina);
   ImageIndexType index_trachea;
-  bones->TransformPhysicalPointToIndex(point_trachea, index_trachea);
-  DD(point_trachea);
+  bones->TransformPhysicalPointToIndex(carina, index_trachea);
   DD(index_trachea);
   
   // Split bone image first into two parts (ant and post)