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); }