void DoubleThresholdImageFilterITK::doubleThresholdImageFilterITK() { insideValue_.setVolume(inport1_.getData()); outsideValue_.setVolume(inport1_.getData()); threshold1_.setVolume(inport1_.getData()); threshold2_.setVolume(inport1_.getData()); threshold3_.setVolume(inport1_.getData()); threshold4_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::DoubleThresholdImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetInsideValue(insideValue_.getValue<T>()); filter->SetOutsideValue(outsideValue_.getValue<T>()); filter->SetThreshold1(threshold1_.getValue<T>()); filter->SetThreshold2(threshold2_.getValue<T>()); filter->SetThreshold3(threshold3_.getValue<T>()); filter->SetThreshold4(threshold4_.getValue<T>()); filter->SetFullyConnected(fullyConnected_.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); }
void SignedDanielssonDistanceMapImageFilterITK::signedDanielssonDistanceMapImageFilterITK() { typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typedef itk::Image<T, 3> OutputImageType2; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::SignedDanielssonDistanceMapImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetInsideIsPositive(insideIsPositive_.get()); filter->SetSquaredDistance(squaredDistance_.get()); filter->SetUseImageSpacing(useImageSpacing_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<T>(filter->GetDistanceMap()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); Volume* outputVolume2 = 0; outputVolume2 = ITKToVoreenCopy<T>(filter->GetVoronoiMap()); if (outputVolume2) { transferRWM(inport1_.getData(), outputVolume2); transferTransformation(inport1_.getData(), outputVolume2); outport2_.setData(outputVolume2); } else outport2_.setData(0); }
void DiscreteGaussianImageFilterITK::discreteGaussianImageFilterITK() { maximumError_.setVolume(inport1_.getData()); maximumError_.setMinValue<T>(1.0f); variance_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<float, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::DiscreteGaussianImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetInternalNumberOfStreamDivisions(internalNumberOfStreamDivisions_.get()); filter->SetMaximumError(maximumError_.getValue<T>()); filter->SetVariance(variance_.getValue<T>()); filter->SetUseImageSpacing(useImageSpacing_.get()); filter->SetFilterDimensionality(filterDimensionality_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<float>(filter->GetOutput()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
void BayesianClassifierImageFilterITK::bayesianClassifierImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType; typedef itk::Image<uint8_t, 3> OutputImageType; typedef itk::VectorImage<float, 3> VectorImageType; typename InputImageType::Pointer p1 = voreenToITK<T>(inport1_.getData()); typedef itk::BayesianClassifierInitializationImageFilter<InputImageType> InitFilterType; typename InitFilterType::Pointer initializer = InitFilterType::New(); initializer->SetInput(p1); initializer->SetNumberOfClasses(numberOfClasses_.get()); try { initializer->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } //Filter define typedef itk::BayesianClassifierImageFilter<VectorImageType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(0, initializer->GetOutput()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<uint8_t>(filter->GetOutput()); if (outputVolume1) { transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
void IntensityWindowingImageFilterITK::intensityWindowingImageFilterITK() { outputMinimum_.setVolume(inport1_.getData()); outputMaximum_.setVolume(inport1_.getData()); windowMinimum_.setVolume(inport1_.getData()); windowMaximum_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::IntensityWindowingImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetOutputMinimum(outputMinimum_.getValue<T>()); filter->SetOutputMaximum(outputMaximum_.getValue<T>()); filter->SetWindowMinimum(windowMinimum_.getValue<T>()); filter->SetWindowMaximum(windowMaximum_.getValue<T>()); 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); }
void OtsuThresholdImageFilterITK::otsuThresholdImageFilterITK() { outsideValue_.setVolume(inport1_.getData()); outsideValue_.setMinValue<T>(0.0001f); insideValue_.setVolume(inport1_.getData()); insideValue_.setMinValue<T>(0.0001f); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::OtsuThresholdImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetNumberOfHistogramBins(numberOfHistogramBins_.get()); filter->SetOutsideValue(outsideValue_.getValue<T>()); filter->SetInsideValue(insideValue_.getValue<T>()); 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); }
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); }
void GradientAnisotropicDiffusionImageFilterITK::gradientAnisotropicDiffusionImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::GradientAnisotropicDiffusionImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetNumberOfIterations(numberOfIterations_.get()); filter->SetTimeStep(timeStep_.get()); filter->SetConductanceParameter(conductanceParameter_.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); }
void ScalarConnectedComponentImageFilterITK::scalarConnectedComponentImageFilterITK() { distanceThreshold_.setVolume(inport1_.getData()); distanceThreshold_.setMinValue<T>(0.001f); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::ScalarConnectedComponentImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetDistanceThreshold(distanceThreshold_.getValue<T>()); 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); }
void GradientRecursiveGaussianImageFilterITK::gradientRecursiveGaussianImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<itk::CovariantVector<double,3>, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::GradientRecursiveGaussianImageFilter<InputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetNormalizeAcrossScale(normalizeAcrossScale_.get()); filter->SetUseImageDirection(useImageDirection_.get()); filter->SetSigma(sigma_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKVec3ToVoreenVec3Copy<double>(filter->GetOutput()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
void RelabelComponentImageFilterITK::relabelComponentImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::RelabelComponentImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetMinimumObjectSize(minimumObjectSize_.get()); observe(filter.GetPointer()); try { filter->Update(); numberOfObjects_.set(filter->GetNumberOfObjects()); originalNumberOfObjects_.set(filter->GetOriginalNumberOfObjects()); } 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); }
void LabelOverlayImageFilterITK::labelOverlayImageFilterITK() { backgroundValue_.setVolume(inport1_.getData()); typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<S, 3> InputImageType2; typedef itk::Image<itk::CovariantVector<uint8_t,3>, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); typename InputImageType2::Pointer p2 = voreenToITK<S>(inport2_.getData()); //Filter define typedef itk::LabelOverlayImageFilter<InputImageType1, InputImageType2, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetLabelImage(p2); filter->SetOpacity(opacity_.get()); filter->SetBackgroundValue(backgroundValue_.getValue<T>()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKVec3ToVoreenVec3Copy<uint8_t>(filter->GetOutput()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
void MaskImageFilterITK::maskImageFilterITK() { outsideValue_.setVolume(inport1_.getData()); 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::MaskImageFilter<InputImageType1, InputImageType2, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetMaskImage(p2); filter->SetOutsideValue(outsideValue_.getValue<T>()); 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); }
void WatershedImageFilterITK::watershedImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<VolumeRAM_UInt64, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::WatershedImageFilter<InputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetLevel(level_.get()); filter->SetThreshold(threshold_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<itk::IdentifierType>(filter->GetOutput()); if (outputVolume1) { transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
void GrayscaleGrindPeakImageFilterITK::grayscaleGrindPeakImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::GrayscaleGrindPeakImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetFullyConnected(fullyConnected_.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); }
void VotingBinaryIterativeHoleFillingImageFilterITK::votingBinaryIterativeHoleFillingImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::VotingBinaryIterativeHoleFillingImageFilter<InputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetMaximumNumberOfIterations(maximumNumberOfIterations_.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); }
void MinMaxCurvatureFlowImageFilterITK::minMaxCurvatureFlowImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<float, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::MinMaxCurvatureFlowImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetStencilRadius(stencilRadius_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<float>(filter->GetOutput()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); }
Volume* ValuedRegionalMaximaImageFilter::applyFilter(const VolumeBase* inputVolume) { typedef itk::Image<T, 3> InputImageType; typedef itk::Image<T, 3> OutputImageType; typename InputImageType::Pointer p = voreenToITK<T>(inputVolume); typedef itk::ValuedRegionalMaximaImageFilter<InputImageType, OutputImageType> FilterType; // Create the filter typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p); observe(filter.GetPointer()); // Run the filter filter->Update(); return ITKToVoreenCopy<T>(filter->GetOutput()); }
void HausdorffDistanceImageFilterITK::hausdorffDistanceImageFilterITK() { typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<S, 3> InputImageType2; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); typename InputImageType2::Pointer p2 = voreenToITK<S>(inport2_.getData()); //Filter define typedef itk::HausdorffDistanceImageFilter<InputImageType1, InputImageType2> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput1(p1); filter->SetInput2(p2); observe(filter.GetPointer()); try { filter->Update(); hausdorffDistance_.set(filter->GetHausdorffDistance()); averageHausdorffDistance_.set(filter->GetAverageHausdorffDistance()); } catch (itk::ExceptionObject &e) { LERROR(e); } }
void SimilarityIndexImageFilterITK::similarityIndexImageFilterITK() { typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<S, 3> InputImageType2; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); typename InputImageType2::Pointer p2 = voreenToITK<S>(inport2_.getData()); //Filter define typedef itk::SimilarityIndexImageFilter<InputImageType1, InputImageType2> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput1(p1); filter->SetInput2(p2); observe(filter.GetPointer()); try { filter->Update(); similarityIndex_.set(filter->GetSimilarityIndex()); } catch (itk::ExceptionObject &e) { LERROR(e); } }
void DilateObjectMorphologyImageFilterITK::dilateObjectMorphologyImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typedef T PixelType; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); if(structuringElement_.get() == "binaryBall"){ shape_.setVisible(false); typedef itk::BinaryBallStructuringElement < PixelType, 3 > KernelType; typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); KernelType structuringElement; typename KernelType::SizeType radius; radius[0] = radius_.get().x; radius[1] = radius_.get().y; radius[2] = radius_.get().z; structuringElement.SetRadius(radius); structuringElement.CreateStructuringElement(); filter->SetKernel(structuringElement); 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); } else if(structuringElement_.get() == "binaryCross"){ shape_.setVisible(false); typedef itk::BinaryCrossStructuringElement < PixelType, 3 > KernelType; typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); KernelType structuringElement; typename KernelType::SizeType radius; radius[0] = radius_.get().x; radius[1] = radius_.get().y; radius[2] = radius_.get().z; structuringElement.SetRadius(radius); structuringElement.CreateStructuringElement(); filter->SetKernel(structuringElement); 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); } else if(structuringElement_.get() == "flat"){ shape_.setVisible(true); typedef itk::FlatStructuringElement < 3 > KernelType; typename KernelType::SizeType radius; radius[0] = radius_.get().x; radius[1] = radius_.get().y; radius[2] = radius_.get().z; if(shape_.get() == "box"){ KernelType structuringElement = KernelType::Box(radius); typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetKernel(structuringElement); 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); } else if(shape_.get() == "ball"){ KernelType structuringElement = KernelType::Ball(radius); typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetKernel(structuringElement); 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); } else if(shape_.get() == "cross"){ KernelType structuringElement = KernelType::Cross(radius); typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetKernel(structuringElement); 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); } else if(shape_.get() == "annulus"){ KernelType structuringElement = KernelType::Annulus(radius); typedef itk::DilateObjectMorphologyImageFilter<InputImageType1, OutputImageType1, KernelType> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetKernel(structuringElement); 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); } } }
void GrayscaleConnectedClosingImageFilterITK::grayscaleConnectedClosingImageFilterITK() { if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::GrayscaleConnectedClosingImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetFullyConnected(fullyConnected_.get()); if (seedPointPort_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort_.getData()); if (pointList) { seedPoints = pointList->getData(); if (!seedPoints.empty()) { numSeedPoint_.setMinValue(1); numSeedPoint_.setMaxValue(seedPoints.size()); numSeedPoint_.set(seedPoints.size()); } else { numSeedPoint_.setMinValue(0); numSeedPoint_.setMaxValue(0); numSeedPoint_.set(0); } } } if(!seedPoints.empty()) { seedPoint_.set(seedPoints[numSeedPoint_.get()-1]); } else { seedPoint_.set(tgt::vec3 (1)); } typename InputImageType1::IndexType seed; seed[0] = seedPoint_.get().x; seed[1] = seedPoint_.get().y; seed[2] = seedPoint_.get().z; filter->SetSeed(seed); 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); }
void IsolatedWatershedImageFilterITK::isolatedWatershedImageFilterITK() { replaceValue1_.setVolume(inport1_.getData()); replaceValue2_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::IsolatedWatershedImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); if (seedPointPort1_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList1 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort1_.getData()); if (pointList1) { seedPoints1 = pointList1->getData(); if (!seedPoints1.empty()) { numSeedPoint1_.setMinValue(1); numSeedPoint1_.setMaxValue(seedPoints1.size()); numSeedPoint1_.set(seedPoints1.size()); } else { numSeedPoint1_.setMinValue(0); numSeedPoint1_.setMaxValue(0); numSeedPoint1_.set(0); } } } if(!seedPoints1.empty()) { seedPoint1_.set(seedPoints1[numSeedPoint1_.get()-1]); } else { seedPoint1_.set(tgt::vec3 (1)); } typename InputImageType1::IndexType seed1; seed1[0] = seedPoint1_.get().x; seed1[1] = seedPoint1_.get().y; seed1[2] = seedPoint1_.get().z; filter->SetSeed1(seed1); if (seedPointPort2_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList2 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort2_.getData()); if (pointList2) { seedPoints2 = pointList2->getData(); if (!seedPoints2.empty()) { numSeedPoint2_.setMinValue(1); numSeedPoint2_.setMaxValue(seedPoints2.size()); numSeedPoint2_.set(seedPoints2.size()); } else { numSeedPoint2_.setMinValue(0); numSeedPoint2_.setMaxValue(0); numSeedPoint2_.set(0); } } } if(!seedPoints2.empty()) { seedPoint2_.set(seedPoints2[numSeedPoint2_.get()-1]); } else { seedPoint2_.set(tgt::vec3 (1)); } typename InputImageType1::IndexType seed2; seed2[0] = seedPoint2_.get().x; seed2[1] = seedPoint2_.get().y; seed2[2] = seedPoint2_.get().z; filter->SetSeed2(seed2); filter->SetThreshold(threshold_.get()); filter->SetIsolatedValueTolerance(isolatedValueTolerance_.get()); filter->SetUpperValueLimit(upperValueLimit_.get()); filter->SetReplaceValue1(replaceValue1_.getValue<T>()); filter->SetReplaceValue2(replaceValue2_.getValue<T>()); 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); }
void IsolatedConnectedImageFilterITK::isolatedConnectedImageFilterITK() { replaceValue_.setVolume(inport1_.getData()); isolatedValueTolerance_.setVolume(inport1_.getData()); upper_.setVolume(inport1_.getData()); lower_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::IsolatedConnectedImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); if (seedPointPort1_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList1 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort1_.getData()); if (pointList1) { seedPoints1 = pointList1->getData(); } } filter->ClearSeeds1(); typename InputImageType1::IndexType seed1; for (size_t i = 0; i < seedPoints1.size(); i++) { seed1[0] = seedPoints1[i].x; seed1[1] = seedPoints1[i].y; seed1[2] = seedPoints1[i].z; filter->AddSeed1(seed1); } if (seedPointPort2_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList2 = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort2_.getData()); if (pointList2) { seedPoints2 = pointList2->getData(); } } filter->ClearSeeds2(); typename InputImageType1::IndexType seed2; for (size_t i = 0; i < seedPoints2.size(); i++) { seed2[0] = seedPoints2[i].x; seed2[1] = seedPoints2[i].y; seed2[2] = seedPoints2[i].z; filter->AddSeed2(seed2); } filter->SetReplaceValue(replaceValue_.getValue<T>()); filter->SetIsolatedValueTolerance(isolatedValueTolerance_.getValue<T>()); filter->SetUpper(upper_.getValue<T>()); filter->SetLower(lower_.getValue<T>()); filter->SetFindUpperThreshold(findUpperThreshold_.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); }
void ConfidenceConnectedImageFilterITK::confidenceConnectedImageFilterITK() { replaceValue_.setVolume(inport1_.getData()); if (!enableProcessing_.get()) { outport1_.setData(inport1_.getData(), false); return; } typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::ConfidenceConnectedImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); if (seedPointPort_.hasChanged()) { const PointListGeometry<tgt::vec3>* pointList = dynamic_cast< const PointListGeometry<tgt::vec3>* >(seedPointPort_.getData()); if (pointList) { seedPoints = pointList->getData(); } } filter->ClearSeeds(); typename InputImageType1::IndexType seed; for (size_t i = 0; i < seedPoints.size(); i++) { seed[0] = seedPoints[i].x; seed[1] = seedPoints[i].y; seed[2] = seedPoints[i].z; filter->AddSeed(seed); } filter->SetNumberOfIterations(numberOfIterations_.get()); filter->SetReplaceValue(replaceValue_.getValue<T>()); filter->SetMultiplier(multiplier_.get()); filter->SetInitialNeighborhoodRadius(initialNeighborhoodRadius_.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); }