freImageTypes.txx

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   F.R.E.E. - flexible registration evaluation engine
00004   Version:   v.1.0.0
00005   Date:      $Date: 2006/09/01 12:00:00 $
00006   Module:    $RCSfile: freImageTypes.txx,v $
00007   Language:  C++
00008 
00009 
00010 
00011   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00012   Institute for Medical Biometry and Informatics, University of Heidelberg,
00013   Germany). All rights reserved.
00014   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00015   for details.
00016 
00017      This software is distributed WITHOUT ANY WARRANTY; without even 
00018      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00019      PURPOSE.  See the above copyright notices for more information.
00020 
00021 =========================================================================*/
00022 #ifndef __freImageTypes_txx
00023 #define __freImageTypes_txx
00024 
00025 #include "freImageTypes.h"
00026 
00027 #include "itkImageRegionIterator.h"
00028 
00029 namespace FREE
00030 {
00031 
00032 template < class TImageType >
00033 typename DefaultImages<TImageType>::ImagePointer
00034 DefaultImages<TImageType>::
00035 CreateGridImage(const RegionType& imageRegion, const SpacingType& imageSpacing, const PixelType& gridValue, const PixelType& backValue, const unsigned int& iGridSize)
00036 {
00037         typedef itk::ImageRegionIterator< ImageType > IteratorType;
00038         ImagePointer gridImage = ImageType::New();
00039 
00040         //Generate imagegrid
00041         gridImage->SetRegions(imageRegion);
00042         gridImage->SetSpacing(imageSpacing);
00043         gridImage->Allocate();
00044         gridImage->FillBuffer(backValue);
00045 
00046   IteratorType iterator(gridImage,gridImage->GetLargestPossibleRegion());
00047         for (iterator.GoToBegin(); !(iterator.IsAtEnd()); ++iterator)
00048         {
00049                 unsigned int iDimInGrid = 0;
00050                 typename ImageType::IndexType index = iterator.GetIndex();
00051 
00052                 for (int iIndex=0; iIndex<gridImage->GetImageDimension(); iIndex++)
00053                 {
00054                         if (index[iIndex]%iGridSize==0) iDimInGrid++;
00055                 };
00056 
00057                 if (iDimInGrid>=(gridImage->GetImageDimension()-1)) iterator.Set(gridValue); 
00058                 //at least in n-1 dimensions the index is on a gridline
00059         };
00060         return gridImage;
00061 }
00062 
00063 }//End of Namespace free
00064 
00065 #endif

Generated at Sat Oct 13 16:09:47 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000