1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ======================================================================-====*/
19 #ifndef CLITKEXTRACTLYMPHSTATIONSFILTER_TXX
20 #define CLITKEXTRACTLYMPHSTATIONSFILTER_TXX
23 #include "clitkCommon.h"
24 #include "clitkExtractLymphStationsFilter.h"
25 #include "clitkAddRelativePositionConstraintToLabelImageFilter.h"
26 #include "clitkSegmentationUtils.h"
27 #include "clitkAutoCropFilter.h"
28 #include "clitkSegmentationUtils.h"
29 #include "clitkSliceBySliceRelativePositionFilter.h"
32 #include <itkStatisticsLabelMapFilter.h>
33 #include <itkLabelImageToStatisticsLabelMapFilter.h>
34 #include <itkRegionOfInterestImageFilter.h>
35 #include <itkBinaryThresholdImageFilter.h>
36 #include <itkImageSliceConstIteratorWithIndex.h>
37 #include <itkImageSliceIteratorWithIndex.h>
38 #include <itkBinaryThinningImageFilter.h>
41 #include "RelativePositionPropImageFilter.h"
43 //--------------------------------------------------------------------
44 template <class TImageType>
45 clitk::ExtractLymphStationsFilter<TImageType>::
46 ExtractLymphStationsFilter():
48 clitk::FilterWithAnatomicalFeatureDatabaseManagement(),
49 itk::ImageToImageFilter<TImageType, MaskImageType>()
51 this->SetNumberOfRequiredInputs(1);
52 SetBackgroundValue(0);
53 SetForegroundValue(1);
56 SetFuzzyThreshold(0.5);
57 SetStation7Filename("station7.mhd");
59 //--------------------------------------------------------------------
62 //--------------------------------------------------------------------
63 template <class TImageType>
64 template <class ArgsInfoType>
66 clitk::ExtractLymphStationsFilter<TImageType>::
67 SetArgsInfo(ArgsInfoType & argsinfo) {
70 //--------------------------------------------------------------------
73 //--------------------------------------------------------------------
74 template <class TImageType>
76 clitk::ExtractLymphStationsFilter<TImageType>::
77 GenerateOutputInformation() {
80 m_Input = dynamic_cast<const ImageType*>(itk::ProcessObject::GetInput(0));
81 m_Support = GetAFDB()->template GetImage <MaskImageType>("mediastinum");
84 typedef clitk::BooleanOperatorLabelImageFilter<MaskImageType> BFilter;
85 BFilter::Pointer merge = BFilter::New();
89 m_Output = m_Station7;
94 writeImage<MaskImageType>(m_Station4RL, "s4rl.mhd");
95 // writeImage<MaskImageType>(m_Output, "ouput.mhd");
96 //writeImage<MaskImageType>(m_Working_Support, "ws.mhd");
97 /*merge->SetInput1(m_Station7);
98 merge->SetInput2(m_Station4RL); // support
99 merge->SetOperationType(BFilter::AndNot); CHANGE OPERATOR
100 merge->SetForegroundValue(4);
102 m_Output = merge->GetOutput();
105 //--------------------------------------------------------------------
108 //--------------------------------------------------------------------
109 template <class TImageType>
111 clitk::ExtractLymphStationsFilter<TImageType>::
112 GenerateInputRequestedRegion() {
113 DD("GenerateInputRequestedRegion (nothing?)");
115 //--------------------------------------------------------------------
118 //--------------------------------------------------------------------
119 template <class TImageType>
121 clitk::ExtractLymphStationsFilter<TImageType>::
123 DD("GenerateData, graft output");
125 // Final Step -> graft output (if SetNthOutput => redo)
126 this->GraftOutput(m_Output);
128 //--------------------------------------------------------------------
131 //--------------------------------------------------------------------
132 template <class TImageType>
134 clitk::ExtractLymphStationsFilter<TImageType>::
136 DD("ExtractStation_7");
137 ExtractStation_7_SI_Limits();
138 ExtractStation_7_RL_Limits();
139 ExtractStation_7_Posterior_Limits();
141 //--------------------------------------------------------------------
144 //--------------------------------------------------------------------
145 template <class TImageType>
147 clitk::ExtractLymphStationsFilter<TImageType>::
148 ExtractStation_4RL() {
149 DD("ExtractStation_4RL");
150 writeImage<MaskImageType>(m_Support, "essai.mhd"); // OK
153 WARNING ONLY 4R FIRST !!! (not same inf limits)
156 ExtractStation_4RL_SI_Limits();
157 ExtractStation_4RL_LR_Limits();
160 //--------------------------------------------------------------------
164 #endif //#define CLITKBOOLEANOPERATORLABELIMAGEFILTER_TXX