X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI_ConvertToImageFilter.cxx;h=07c7a956eccf327c1c8245978e7902858b4525c5;hb=417fa02691e61ff52abb5ce74c81d767755aca7e;hp=969463990b6fb71cb2534590299a9d254613cbb5;hpb=1e034c70105f0926939acaaa27ddb46e904ae8bf;p=clitk.git diff --git a/common/clitkDicomRT_ROI_ConvertToImageFilter.cxx b/common/clitkDicomRT_ROI_ConvertToImageFilter.cxx index 9694639..07c7a95 100644 --- a/common/clitkDicomRT_ROI_ConvertToImageFilter.cxx +++ b/common/clitkDicomRT_ROI_ConvertToImageFilter.cxx @@ -4,7 +4,7 @@ Authors belongs to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.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 @@ -17,19 +17,19 @@ =========================================================================*/ +#include +#include #include "clitkDicomRT_ROI_ConvertToImageFilter.h" #include #include #include #include -#include #include "clitkImageCommon.h" //-------------------------------------------------------------------- clitk::DicomRT_ROI_ConvertToImageFilter::DicomRT_ROI_ConvertToImageFilter() { mROI = NULL; - mImageInfoIsSet = false; mWriteOutput = false; mCropMask = true; } @@ -43,6 +43,10 @@ clitk::DicomRT_ROI_ConvertToImageFilter::~DicomRT_ROI_ConvertToImageFilter() } //-------------------------------------------------------------------- +bool clitk::DicomRT_ROI_ConvertToImageFilter::ImageInfoIsSet() const +{ + return mSize.size() && mSpacing.size() && mOrigin.size(); +} //-------------------------------------------------------------------- void clitk::DicomRT_ROI_ConvertToImageFilter::SetROI(clitk::DicomRT_ROI * roi) @@ -88,10 +92,23 @@ void clitk::DicomRT_ROI_ConvertToImageFilter::SetImageFilename(std::string f) mOrigin[i] = header->GetOrigin(i); mSize[i] = header->GetDimensions(i); } - mImageInfoIsSet = true; } //-------------------------------------------------------------------- +void clitk::DicomRT_ROI_ConvertToImageFilter::SetOutputOrigin(const double* origin) +{ + std::copy(origin,origin+3,std::back_inserter(mOrigin)); +} +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI_ConvertToImageFilter::SetOutputSpacing(const double* spacing) +{ + std::copy(spacing,spacing+3,std::back_inserter(mSpacing)); +} +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI_ConvertToImageFilter::SetOutputSize(const unsigned long* size) +{ + std::copy(size,size+3,std::back_inserter(mSize)); +} //-------------------------------------------------------------------- void clitk::DicomRT_ROI_ConvertToImageFilter::Update() @@ -100,7 +117,7 @@ void clitk::DicomRT_ROI_ConvertToImageFilter::Update() std::cerr << "Error. No ROI set, please use SetROI." << std::endl; exit(0); } - if (!mImageInfoIsSet) { + if (!ImageInfoIsSet()) { std::cerr << "Error. Please provide image info (spacing/origin) with SetImageFilename" << std::endl; exit(0); } @@ -139,7 +156,7 @@ void clitk::DicomRT_ROI_ConvertToImageFilter::Update() } // Create new output image - mBinaryImage = vtkImageData::New(); + mBinaryImage = vtkSmartPointer::New(); mBinaryImage->SetScalarTypeToUnsignedChar(); mBinaryImage->SetOrigin(&origin[0]); mBinaryImage->SetSpacing(&mSpacing[0]); @@ -159,8 +176,7 @@ void clitk::DicomRT_ROI_ConvertToImageFilter::Update() // Extrude vtkSmartPointer extrude=vtkSmartPointer::New(); extrude->SetInput(mesh); - ///We extrude in the -slice_spacing direction to respect the FOCAL convention // ????????????? - extrude->SetVector(0, 0, -mSpacing[2]); + extrude->SetVector(0, 0, mROI->GetContourSpacing()); // Binarization vtkSmartPointer sts=vtkSmartPointer::New(); @@ -194,6 +210,8 @@ void clitk::DicomRT_ROI_ConvertToImageFilter::Update() //-------------------------------------------------------------------- vtkImageData * clitk::DicomRT_ROI_ConvertToImageFilter::GetOutput() { + assert(mBinaryImage); return mBinaryImage; } //-------------------------------------------------------------------- +