C:/cmcintos/defOrgs/examples/vesselCrawler/source/Sense_SenseToGrow.h

00001 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00002 #pragma once
00003 #endif
00004 #ifndef _Sense_SenseToGrow
00005 #define _Sense_SenseToGrow
00006 
00007 #include "itkImageFileWriter.h"
00008 #include "Sensor.h"
00009 namespace mial
00010 {
00011 
00013 
00024         template<class DataType, class TInputImage, int nDims>
00025         class Sense_SenseToGrow: public Sensor
00026         {
00027                 //****************************************************
00028                 //Member variables
00029                 //****************************************************
00030         public:
00031 
00032                 typedef TInputImage                                                                     InputImageType;
00033                 typedef typename InputImageType::ConstPointer           InputImagePointer;
00034 
00035                 typedef itk::Image<DataType,nDims>                                      OutputImageType;
00036                 typedef typename OutputImageType::ConstPointer          OutputImagePointer;
00037 
00038 
00039                 typedef TGradientImage                                                          GradientImageType;
00040                 typedef typename GradientImageType::Pointer                     GradientImagePointer;
00041 
00042                 struct In: public Sensor::sensorIn{
00043                         //Sensor::sensorIn baseIn;//Import standards
00044                         //Define all custom here
00046                         InputImagePointer imageIn;
00047                 };
00048                 typedef In sensorIn; 
00049                 struct Out: public Sensor::sensorOut{
00050                         //Sensor::sensorOut baseOut;//Import standards
00051                         //Define all custom here
00052                         DataType[nDims] growLocation;
00053                 };
00054                 typedef Out sensorOut;
00055         private:
00056 
00057                 //Define all variables specific to this sensor here
00058                 typedef typename itk::GradientMagnitudeRecursiveGaussianImageFilter<InputImageType, OutputImageType> MagnitudeFilterType;
00059                 typedef typename itk::GradientRecursiveGaussianImageFilter<OutputImageType, GradientImageType> GradientFilterType;
00060 
00061                 //Testing
00062                 //typedef typename itk::GradientMagnitudeRecursiveGaussianImageFilter<InputImageType, InputImageType> MagnitudeFilterType;
00063 
00064                 typename MagnitudeFilterType::Pointer magnitudeFilter;
00065                 typename GradientFilterType::Pointer gradientFilter;
00066 
00067                 sensorOut sensorOutput;
00068 
00069 
00070                 //****************************************************
00071                 //Member functions
00072                 //****************************************************
00073         public:
00074 
00075                 Sense_SenseToGrow();//default constructor
00076 
00077                 //Run the sensor
00078                 virtual void run(void * i);
00079 
00080 
00081                 //Overide in derived class if custom sensor output desired
00082                 virtual void * getOuput(){ return (void *)&sensorOutput;};
00083 
00084         private:
00085                 //write an image to file
00086                 void writeImageToFile(OutputImagePointer img,char * name);
00087 
00088         };
00089 } // end namespace mial
00090 #include "Sense_SenseToGrow.cxx"
00091 #endif

Generated on Wed Jul 19 13:05:17 2006 for IDO by  doxygen 1.4.7