void itkSegmentLV< TImage> ::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, ThreadIdType threadId) { typename TImage::ConstPointer input = this->GetInput(); typename TImage::Pointer output = this->GetOutput(); //caster2->SetInput(input); ConnectedRegionGrowing->SetInput( input ); ConnectedRegionGrowing->SetLower( lowerThreshold ); ConnectedRegionGrowing->SetUpper( upperThreshold ); ConnectedRegionGrowing->SetRadius( radius ); ConnectedRegionGrowing->SetSeed( index ); ConnectedRegionGrowing->SetReplaceValue( 255 ); binaryErode->SetKernel( structuringElement ); binaryDilate->SetKernel( structuringElement ); binaryDilate->SetInput( ConnectedRegionGrowing->GetOutput()); binaryErode->SetInput( binaryDilate->GetOutput() ); sbs->SetInput(binaryErode->GetOutput() ); // sbs->SetInput(ConnectedRegionGrowing->GetOutput() ); sbs->SetInputFilter(connected); sbs->SetOutputFilter(rescaleFilter); labelShapeKeepNObjectsImageFilter->SetInput( connected->GetOutput() ); labelShapeKeepNObjectsImageFilter->SetBackgroundValue( 0 ); labelShapeKeepNObjectsImageFilter->SetNumberOfObjects( 1 ); labelShapeKeepNObjectsImageFilter->SetAttribute( LabelShapeKeepNObjectsImageFilterType:: LabelObjectType::NUMBER_OF_PIXELS); rescaleFilter->SetOutputMinimum(0); rescaleFilter->SetOutputMaximum(itk::NumericTraits<signed short>::max()); rescaleFilter->SetInput(labelShapeKeepNObjectsImageFilter->GetOutput()); sbs->Update(); this->AllocateOutputs(); ImageAlgorithm::Copy(sbs->GetOutput(), output.GetPointer(), output->GetRequestedRegion(), output->GetRequestedRegion() ); }