X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=filters%2FclitkImageFillRegionGenericFilter.cxx;h=dd5a51ab667d6db2b32b9bdff2d889ef577932fc;hb=c18059db4f507fd31b5898667f57eced7d48c5f7;hp=8e5e35d1fadef2820e05ede029be8733299dbb55;hpb=9bcf64b7f7c5a7f0a39843df634c05b5d9e4e237;p=clitk.git diff --git a/filters/clitkImageFillRegionGenericFilter.cxx b/filters/clitkImageFillRegionGenericFilter.cxx index 8e5e35d..dd5a51a 100644 --- a/filters/clitkImageFillRegionGenericFilter.cxx +++ b/filters/clitkImageFillRegionGenericFilter.cxx @@ -1,44 +1,50 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*/ + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.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 +======================================================================-====*/ #ifndef CLITKIMAGEFILLREGIONGENERICFILTER_CXX #define CLITKIMAGEFILLREGIONGENERICFILTER_CXX - /** ------------------------------------------------------------------- * @file clitkImageFillRegionGenericFilter.cxx * @author David Sarrut * @date 23 Feb 2008 - * @brief + * @brief -------------------------------------------------------------------*/ #include "clitkImageFillRegionGenericFilter.h" //-------------------------------------------------------------------- clitk::ImageFillRegionGenericFilter::ImageFillRegionGenericFilter(): - clitk::ImageToImageGenericFilter("ImageFillRegion") { + clitk::ImageToImageGenericFilter("ImageFillRegion") +{ InitializeImageType<2>(); - InitializeImageType<3>(); + InitializeImageType<3>(); mPixelValue = 0; m_IsCentered=false; - mSphericRegion=false; + mSphericRegion=false; } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template -void clitk::ImageFillRegionGenericFilter::InitializeImageType() { +void clitk::ImageFillRegionGenericFilter::InitializeImageType() +{ // ADD_IMAGE_TYPE(Dim, char); ADD_IMAGE_TYPE(Dim, short); // ADD_IMAGE_TYPE(Dim, unsigned short); @@ -52,7 +58,8 @@ void clitk::ImageFillRegionGenericFilter::InitializeImageType() { //-------------------------------------------------------------------- template -void clitk::ImageFillRegionGenericFilter::UpdateWithInputImageType() { +void clitk::ImageFillRegionGenericFilter::UpdateWithInputImageType() +{ // Typedef typedef typename ImageType::PixelType PixelType; @@ -65,7 +72,7 @@ void clitk::ImageFillRegionGenericFilter::UpdateWithInputImageType() { typename ImageType::Pointer input = GetInput(0); // Get pixel value in correct type - PixelType value = PixelTypeDownCast(mPixelValue); + PixelType value = PixelTypeDownCast(mPixelValue); // Get region typedef typename ImageType::RegionType RegionType; @@ -97,7 +104,8 @@ void clitk::ImageFillRegionGenericFilter::UpdateWithInputImageType() { //-------------------------------------------------------------------- template -void clitk::ImageFillRegionGenericFilter::Update_WithDimAndPixelType_SphericRegion() { +void clitk::ImageFillRegionGenericFilter::Update_WithDimAndPixelType_SphericRegion() +{ // Read input typedef itk::Image ImageType; @@ -105,48 +113,46 @@ void clitk::ImageFillRegionGenericFilter::Update_WithDimAndPixelType_SphericRegi typename ImageType::Pointer input = GetInput(0); // Get pixel value in correct type - PixelType value = PixelTypeDownCast(mPixelValue); + PixelType value = PixelTypeDownCast(mPixelValue); // Centered? - if(m_IsCentered) - { - typename ImageType::SizeType size= input->GetLargestPossibleRegion().GetSize(); - typename ImageType::SpacingType spacing= input->GetSpacing(); - typename ImageType::PointType origin= input->GetOrigin(); - mCenter.resize(Dim); - for (unsigned int i=0; iGetLargestPossibleRegion().GetSize(); + typename ImageType::SpacingType spacing= input->GetSpacing(); + typename ImageType::PointType origin= input->GetOrigin(); + mCenter.resize(Dim); + for (unsigned int i=0; i IteratorType; IteratorType it(input, input->GetLargestPossibleRegion()); it.GoToBegin(); - typename ImageType::PointType point; - //typename itk::Vector distance; + typename ImageType::PointType point; + //typename itk::Vector distance; typename ImageType::IndexType index; //bool inside; double distance; - - while (!it.IsAtEnd()) - { - // inside=true; - index=it.GetIndex(); - input->TransformIndexToPhysicalPoint(index, point); - distance=0.0; - for(unsigned int i=0; iTransformIndexToPhysicalPoint(index, point); + distance=0.0; + for(unsigned int i=0; i(input); @@ -157,10 +163,10 @@ void clitk::ImageFillRegionGenericFilter::Update_WithDimAndPixelType_SphericRegi //-------------------------------------------------------------------- -void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector & radius, - std::vector & center) +void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector & radius, + std::vector & center) { - mRadius.clear(); + mRadius.clear(); mRadius.resize(radius.size()); std::copy(radius.begin(), radius.end(), mRadius.begin()); mCenter.clear(); @@ -170,8 +176,9 @@ void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector & m_IsCentered=false; } -void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector & radius) { - mRadius.clear(); +void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector & radius) +{ + mRadius.clear(); mRadius.resize(radius.size()); std::copy(radius.begin(), radius.end(), mRadius.begin()); m_IsCentered=true;