00001 #ifndef _Sense_SenseToGrow_CXX
00002 #define _Sense_SenseToGrow_CXX
00003
00004 #include "Sense_SenseToGrow.h"
00005
00006
00007 namespace mial
00008 {
00009
00010 template<class DataType, class TInputImage, class TGradientImage, int nDims>
00011 Sense_SenseToGrow<DataType,TInputImage,TGradientImage,nDims>
00012 ::Sense_SenseToGrow()
00013 : Sensor()
00014 {
00015
00016 magnitudeFilter = MagnitudeFilterType::New();
00017 gradientFilter = GradientFilterType::New();
00018 }
00019
00020 template<class DataType, class TInputImage, class TGradientImage, int nDims>
00021 void
00022 Sense_SenseToGrow<DataType,TInputImage,TGradientImage,nDims>
00023 ::writeImageToFile(OutputImagePointer img,char * name)
00024 {
00025 typedef typename itk::ImageFileWriter<OutputImageType> WriterType;
00026 WriterType::Pointer writer = WriterType::New();
00027 writer->SetFileName(name);
00028 writer->SetInput(img);
00029 writer->Update();
00030 }
00031
00032 template<class DataType, class TInputImage, class TGradientImage, int nDims>
00033 void
00034 Sense_SenseToGrow<DataType, TInputImage, TGradientImage, nDims>
00035 ::run(void * i)
00036 {
00037 sensorIn in = *(reinterpret_cast<sensorIn *>(i));
00038
00039
00040 magnitudeFilter->SetSigma(in.sigma);
00041 magnitudeFilter->SetNormalizeAcrossScale(1);
00042 magnitudeFilter->SetInput(in.imageIn);
00043
00044
00045
00046
00047
00048
00049
00050 gradientFilter->SetSigma(in.sigma);
00051 gradientFilter->SetNormalizeAcrossScale(1);
00052 gradientFilter->SetInput(magnitudeFilter->GetOutput());
00053
00054 this->sensorOutput.imageOut = gradientFilter->GetOutput();
00055
00056 gradientFilter->Update();
00057 }
00058 }
00059 #endif