vtkImageIslandRemoval2D & vtkImageDataStreamer don't work together
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
I am trying to use vtkImageIslandRemoval2D in a pipeline with streaming image data. An example code snippet of what I am trying to do is given below. If I do not call the Update-method of vtkImageDataStreamer, I get a segmentation fault (in vtkImageDataCastExecute ultimately called by vtkPNGWriter::Write()). If I do call it, I get a set of output images, but they are mostly black. This happens for different numbers of stream divisions. I am using the cvs version of vtk (April 7th, 2006) and g++ (GCC) 4.0.3 (Debian 4.0.3-1).
example code snippet:
vtkImageData idata = vtkImageData::New(); idata->SetScalarTypeToUnsignedChar(); idata->SetExtent(0, nx-1, 0, ny-1, 0, nz-1); unsigned char pt = (unsigned char)(idata->GetScalarPointer()); for (k=0; k<(nxny*nz); k++) *(pt++)=255;
vtkImageIslandRemoval2D *ir = vtkImageIslandRemoval2D::New(); ir->SetInput(idata); ir->SetAreaThreshold(2); ir->SquareNeighborhoodOn(); ir->SetIslandValue(0); ir->SetReplaceValue(255);
vtkImageDataStreamer *ids = vtkImageDataStreamer::New(); ids->SetInputConnection(ir->GetOutputPort()); ids->SetNumberOfStreamDivisions(nblk); ids->UpdateInformation(); ids->GetExtentTranslator()->SetSplitModeToBlock(); ids->Update();
vtkPNGWriter *wrt = vtkPNGWriter::New(); wrt->SetInputConnection(ids->GetOutputPort()); wrt->SetFileDimensionality(2); wrt->SetFilePrefix("islndstrmtst"); wrt->SetFilePattern("%s_%02u.png"); wrt->Write();