X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractLungFilter.txx;h=41e79677bf88c69ebf1788418fc144695f34587b;hb=6a235229f0eca8ea2fad16d8068cc96d5ae5e8d8;hp=b7b28665baff5006bc2de75cfc158fd8be9821fe;hpb=0793c4dd3d451bb9bdc00e3172fa792d1ddaa8dc;p=clitk.git diff --git a/segmentation/clitkExtractLungFilter.txx b/segmentation/clitkExtractLungFilter.txx index b7b2866..41e7967 100644 --- a/segmentation/clitkExtractLungFilter.txx +++ b/segmentation/clitkExtractLungFilter.txx @@ -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:: 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); }