- virtual void BeforeThreadedGenerateData( ) override
- {
- this->Superclass::BeforeThreadedGenerateData( );
-
- const TInputImage* raw = this->GetInputRawImage( );
- typename TInputImage::SpacingType spac = raw->GetSpacing( );
- double sigma = spac[ 0 ];
- for( unsigned int d = 1; d < TInputImage::ImageDimension; ++d )
- sigma = ( spac[ d ] < sigma )? spac[ d ]: sigma;
- sigma *= 1.5;
-
- typedef itk::HessianRecursiveGaussianImageFilter< TInputImage > _THessian;
- typename _THessian::Pointer hessian = _THessian::New( );
- hessian->SetInput( raw );
- hessian->SetSigma( sigma );
-
- typedef itk::Hessian3DToVesselnessMeasureImageFilter< double > _TVesselness;
- typename _TVesselness::Pointer vesselness = _TVesselness::New( );
- vesselness->SetInput( hessian->GetOutput( ) );
- vesselness->SetAlpha1( 0.5 );
- vesselness->SetAlpha2( 2.0 );
-
- typename itk::ImageFileWriter< typename _TVesselness::OutputImageType >::Pointer w =
- itk::ImageFileWriter< typename _TVesselness::OutputImageType >::New( );
- w->SetInput( vesselness->GetOutput( ) );
- w->SetFileName( "vessel.mhd" );
- w->Update( );
- }
-
- virtual void ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId ) override;