void NarrowBandThresholdSegmentationLevelSetImageFilterITK::narrowBandThresholdSegmentationLevelSetImageFilterITK() { typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<S, 3> InputImageType2; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); typename InputImageType2::Pointer p2 = voreenToITK<S>(inport2_.getData()); //Filter define typedef itk::NarrowBandThresholdSegmentationLevelSetImageFilter<InputImageType1, InputImageType2> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetFeatureImage(p2); filter->SetPropagationScaling(propagationScaling_.get()); filter->SetCurvatureScaling(curvatureScaling_.get()); filter->SetAdvectionScaling(advectionScaling_.get()); filter->SetMaximumRMSError(maximumRMSError_.get()); filter->SetNumberOfIterations(numberOfIterations_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<T>(filter->GetOutput()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }