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