X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractLymphStation_3P.txx;h=274fc867c740596227b8c2c92f84b31b4a5d5a02;hb=b2fd61648c05339dd302e102361c22c4b11d48ff;hp=3478b490959b166d75fa33b169cbdacc0026fbdc;hpb=8f785a7646e65eb73b28e274871b2aafcb34d85c;p=clitk.git diff --git a/segmentation/clitkExtractLymphStation_3P.txx b/segmentation/clitkExtractLymphStation_3P.txx index 3478b49..274fc86 100644 --- a/segmentation/clitkExtractLymphStation_3P.txx +++ b/segmentation/clitkExtractLymphStation_3P.txx @@ -25,18 +25,20 @@ ExtractStation_3P() m_Working_Support = m_ListOfSupports["S3P"]; m_ListOfStations["3P"] = m_Working_Support; StopCurrentStep(m_Working_Support); - - // LR limits inferiorly - ExtractStation_3P_LR_inf_Limits(); - - // LR limits superiorly => not here for the moment because not - // clear in the def - // ExtractStation_3P_LR_sup_Limits_2(); //TODO - // ExtractStation_3P_LR_sup_Limits(); // old version to change - + + // Generic RelativePosition processes + m_ListOfStations["3P"] = this->ApplyRelativePositionList("Station_3P", m_ListOfStations["3P"]); + m_Working_Support = m_ListOfStations["3P"]; ExtractStation_8_Single_CCL_Limits(); // YES 8 ! ExtractStation_3P_Remove_Structures(); // after CCL - + m_ListOfStations["3P"] = m_Working_Support; + + // Old stuff + // LR limits superiorly => not here for the moment because not clear in the def + // ExtractStation_3P_LR_sup_Limits_2(); //TODO + // ExtractStation_3P_LR_sup_Limits(); // old version to change + // ExtractStation_3P_LR_inf_Limits(); // <-- done in RelPosList + // Store image filenames into AFDB writeImage(m_ListOfStations["3P"], "seg/Station3P.mhd"); GetAFDB()->SetImageFilename("Station3P", "seg/Station3P.mhd"); @@ -53,16 +55,9 @@ clitk::ExtractLymphStationsFilter:: ExtractStation_3P_Remove_Structures() { StartNewStep("[Station 3P] Remove some structures."); - - Remove_Structures("3P", "Aorta"); - Remove_Structures("3P", "VertebralBody"); - Remove_Structures("3P", "SubclavianArteryLeft"); - Remove_Structures("3P", "SubclavianArteryRight"); Remove_Structures("3P", "Esophagus"); - Remove_Structures("3P", "AzygousVein"); Remove_Structures("3P", "Thyroid"); - Remove_Structures("3P", "VertebralArtery"); - + Remove_Structures("3P", "VertebralArtery"); // (inside the station) StopCurrentStep(m_Working_Support); m_ListOfStations["3P"] = m_Working_Support; } @@ -98,8 +93,8 @@ ExtractStation_3P_LR_sup_Limits() Trachea = clitk::ResizeImageLike(Trachea, m_Working_Support, GetBackgroundValue()); SubclavianArtery = clitk::ResizeImageLike(SubclavianArtery, m_Working_Support, GetBackgroundValue()); - writeImage(Trachea, "tr.mhd"); - writeImage(SubclavianArtery, "sca.mhd"); + // writeImage(Trachea, "tr.mhd"); + // writeImage(SubclavianArtery, "sca.mhd"); // Get list of slices std::vector slices_support; @@ -170,7 +165,7 @@ ExtractStation_3P_LR_sup_Limits() relPosFilter->SetBackgroundValue(GetBackgroundValue()); relPosFilter->SetInput(slices_support[i]); relPosFilter->SetInputObject(object); - relPosFilter->AddOrientationTypeString("R"); + relPosFilter->AddOrientationTypeString("RightTo"); relPosFilter->SetInverseOrientationFlag(true); // relPosFilter->SetIntermediateSpacing(3); relPosFilter->SetIntermediateSpacingFlag(false); @@ -186,7 +181,7 @@ ExtractStation_3P_LR_sup_Limits() relPosFilter->SetBackgroundValue(GetBackgroundValue()); relPosFilter->SetInput(slices_support[i]); relPosFilter->SetInputObject(object); - relPosFilter->AddOrientationTypeString("A"); + relPosFilter->AddOrientationTypeString("AntTo"); relPosFilter->SetInverseOrientationFlag(true); // relPosFilter->SetIntermediateSpacing(3); relPosFilter->SetIntermediateSpacingFlag(false); @@ -285,60 +280,3 @@ ExtractStation_3P_LR_sup_Limits_2() } //-------------------------------------------------------------------- -//-------------------------------------------------------------------- -template -void -clitk::ExtractLymphStationsFilter:: -ExtractStation_3P_LR_inf_Limits() -{ - /* - "On the right side, the limit is defined by the air–soft-tissue - interface. On the left side, it is defined by the air–tissue - interface superiorly (Fig. 2A–C) and the aorta inferiorly - (Figs. 2D–I and 3A–C)." - - inf : not Right to Azygousvein - */ - StartNewStep("[Station 3P] Left/Right limits (inferior part) with Azygousvein and Aorta"); - - // Load structures - MaskImagePointer AzygousVein = GetAFDB()->template GetImage("AzygousVein"); - MaskImagePointer Aorta = GetAFDB()->template GetImage("Aorta"); - - DD("ici"); - writeImage(m_Working_Support, "ws.mhd"); - - typedef clitk::AddRelativePositionConstraintToLabelImageFilter RelPosFilterType; - typename RelPosFilterType::Pointer relPosFilter = RelPosFilterType::New(); - relPosFilter->VerboseStepFlagOff(); - relPosFilter->WriteStepFlagOff(); - relPosFilter->SetBackgroundValue(GetBackgroundValue()); - relPosFilter->SetInput(m_Working_Support); - relPosFilter->SetInputObject(AzygousVein); - relPosFilter->AddOrientationTypeString("R"); - relPosFilter->SetInverseOrientationFlag(true); - relPosFilter->SetIntermediateSpacing(3); - relPosFilter->SetIntermediateSpacingFlag(false); - relPosFilter->SetFuzzyThreshold(0.7); - relPosFilter->AutoCropFlagOn(); - relPosFilter->Update(); - m_Working_Support = relPosFilter->GetOutput(); - - DD("la"); - writeImage(m_Working_Support, "before-L-aorta.mhd"); - relPosFilter->SetInput(m_Working_Support); - relPosFilter->SetInputObject(Aorta); - relPosFilter->AddOrientationTypeString("L"); - relPosFilter->SetInverseOrientationFlag(true); - relPosFilter->SetIntermediateSpacing(3); - relPosFilter->SetIntermediateSpacingFlag(false); - relPosFilter->SetFuzzyThreshold(0.7); - relPosFilter->AutoCropFlagOn(); - relPosFilter->Update(); - m_Working_Support = relPosFilter->GetOutput(); - writeImage(m_Working_Support, "after-L-aorta.mhd"); - - StopCurrentStep(m_Working_Support); - m_ListOfStations["3P"] = m_Working_Support; -} -//--------------------------------------------------------------------