--- /dev/null
+/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
+
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
+
+ It is distributed under dual licence
+
+ - BSD See included LICENSE.txt file
+ - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+===========================================================================**/
+
+// clitk
+#include "clitkIO.h"
+#include "clitkDice_ggo.h"
+
+#include "clitkLabelImageOverlapMeasureGenericFilter.h"
+
+//--------------------------------------------------------------------
+int main(int argc, char * argv[]) {
+
+ // Init command line
+ GGO(clitkDice, args_info);
+ CLITK_INIT;
+
+ // Filter
+ typedef clitk::LabelImageOverlapMeasureGenericFilter<args_info_clitkDice> FilterType;
+ FilterType::Pointer filter = FilterType::New();
+
+ filter->SetArgsInfo(args_info);
+
+ try {
+ filter->Update();
+ } catch(std::runtime_error e) {
+ std::cout << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+} // This is the end, my friend
+//--------------------------------------------------------------------
--- /dev/null
+#File clitkDice.ggo
+package "clitkDice"
+version "1.0"
+purpose "Compute Dice between labeled images. Background must be 0."
+
+section "General options"
+option "config" - "Config file" string no
+option "verbose" v "Verbose" flag off
+option "imagetypes" - "Display allowed image types" flag off
+option "long" l "Long display (not only dice)" flag off
+
+section "Input"
+option "input1" i "Input mask 1" string yes
+option "input2" j "Input mask 2" string yes
+
+option "label1" - "Label in input1" int no default="1"
+option "label2" - "Label in input2" int no default="1"
/*=========================================================================
Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Authors belong to:
+ Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
#ifndef CLITKLABELIMAGEOVERLAPMEASUREGENERICFILTER_H
#define CLITKLABELIMAGEOVERLAPMEASUREGENERICFILTER_H
-// clitk
+// clitk
#include "clitkImageToImageGenericFilter.h"
#include "clitkLabelImageOverlapMeasureFilter.h"
#include "clitkBoundingBoxUtils.h"
#include "clitkCropLikeImageFilter.h"
//--------------------------------------------------------------------
-namespace clitk
+namespace clitk
{
template<class ArgsInfoType>
public:
//--------------------------------------------------------------------
LabelImageOverlapMeasureGenericFilter();
-
+
//--------------------------------------------------------------------
typedef ImageToImageGenericFilter<LabelImageOverlapMeasureGenericFilter<ArgsInfoType> > Superclass;
typedef LabelImageOverlapMeasureGenericFilter Self;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
-
+
//--------------------------------------------------------------------
- itkNewMacro(Self);
+ itkNewMacro(Self);
itkTypeMacro(LabelImageOverlapMeasureGenericFilter, LightObject);
//--------------------------------------------------------------------
void SetArgsInfo(const ArgsInfoType & a);
- template<class FilterType>
+ template<class FilterType>
void SetOptionsFromArgsInfoToFilter(FilterType * f) ;
//--------------------------------------------------------------------
// Main function called each time the filter is updated
- template<class ImageType>
+ template<class ImageType>
void UpdateWithInputImageType();
protected:
private:
LabelImageOverlapMeasureGenericFilter(const Self&); //purposely not implemented
void operator=(const Self&); //purposely not implemented
-
+
};// end class
//--------------------------------------------------------------------
} // end namespace clitk
/*=========================================================================
Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Authors belong to:
+ Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
ImageToImageGenericFilter<Self>("LabelImageOverlapMeasure")
{
// Default values
- cmdline_parser_clitkLabelImageOverlapMeasure_init(&mArgsInfo);
+ cmdline_parser_clitkDice_init(&mArgsInfo);
//InitializeImageType<2>();
InitializeImageType<3>();
}
template<class ArgsInfoType>
template<unsigned int Dim>
void clitk::LabelImageOverlapMeasureGenericFilter<ArgsInfoType>::
-InitializeImageType()
-{
+InitializeImageType()
+{
ADD_IMAGE_TYPE(Dim, uchar);
}
//--------------------------------------------------------------------
-
+
//--------------------------------------------------------------------
template<class ArgsInfoType>
void clitk::LabelImageOverlapMeasureGenericFilter<ArgsInfoType>::
-SetArgsInfo(const ArgsInfoType & a)
+SetArgsInfo(const ArgsInfoType & a)
{
mArgsInfo=a;
- this->SetIOVerbose(mArgsInfo.verbose_flag);
+ //this->SetIOVerbose(mArgsInfo.verbose_flag);
if (mArgsInfo.imagetypes_flag) this->PrintAvailableImageTypes();
if (mArgsInfo.input1_given) this->AddInputFilename(mArgsInfo.input1_arg);
if (mArgsInfo.input2_given) this->AddInputFilename(mArgsInfo.input2_arg);
template<class ArgsInfoType>
template<class FilterType>
void clitk::LabelImageOverlapMeasureGenericFilter<ArgsInfoType>::
-SetOptionsFromArgsInfoToFilter(FilterType * f)
+SetOptionsFromArgsInfoToFilter(FilterType * f)
{
- f->SetLabel1(mArgsInfo.label1_arg);
- f->SetLabel2(mArgsInfo.label2_arg);
+ f->SetLabel1(mArgsInfo.label1_arg);
+ f->SetLabel2(mArgsInfo.label2_arg);
+ f->SetVerboseFlag(mArgsInfo.verbose_flag);
+ f->SetLongFlag(mArgsInfo.long_flag);
}
+//--------------------------------------------------------------------
+
//--------------------------------------------------------------------
// Update with the number of dimensions and the pixeltype
template<class ArgsInfoType>
template<class ImageType>
void clitk::LabelImageOverlapMeasureGenericFilter<ArgsInfoType>::
-UpdateWithInputImageType()
-{
+UpdateWithInputImageType()
+{
// Reading input
typename ImageType::Pointer input1 = this->template GetInput<ImageType>(0);
typename ImageType::Pointer input2 = this->template GetInput<ImageType>(1);
// Create filter
typedef clitk::LabelImageOverlapMeasureFilter<ImageType> FilterType;
typename FilterType::Pointer filter = FilterType::New();
-
- // Set global Options
+
+ // Set global Options
filter->SetInput(0, input1);
filter->SetInput(1, input2);
SetOptionsFromArgsInfoToFilter<FilterType>(filter);
// Go !
filter->Update();
-
+
// Write/Save results
// typename ImageType::Pointer output = filter->GetOutput();
- // this->template SetNextOutput<ImageType>(output);
+ // this->template SetNextOutput<ImageType>(output);
}
//--------------------------------------------------------------------
-
-