Hello,<br><br>i have to load large DICOM datasets ( minimum 1000 512x512 slices, 1 Gb in memory ) in my application. To read the datasets I use itk then I visualize them with vtk.<br><br>My pipeline is as follows:<br>First I use itk::ImageSeriesReader, then I pass the output of the reader to itk::itkImageToVTKImageFilter to get a vtkImageData. Finally the vtkImageData is the input of vtkImageViewer2 to view the dataset.
<br><br>Briefly:<br>itk::ImageSeriesReader -&gt; ( itk::Image ) -&gt; itk::itkImageToVTKImageFilter -&gt; vtkImageData -&gt; vtkImageViewer2<br><br>The pipeline works well with&nbsp; datasets like 512x512 up to aproximately 700 slices in a system with 1Gb of physical memory.
<br>When I want to load larger datasets, the first problem I have is itk::ImageSeriesReader gives me an error saying it could not allocate the memory for the image because there is&#39;nt so much memory available. The first idea that came to me was introducing streaming to the pipeline to solve the problem and reduce the memory footprint of the application loading only the necessary slices in memory.
<br>From the itk library there&#39;s the class itk::StreamingImageFilter, and from vtk there&#39;s vtkImageDataStreamer. <br><br>My first question is, given that pipeline, can I apply streaming to it? <br>second is, if i can, which filter is better to apply: the itk or the vtk one, and where?
<br>if it&#39;s not possible to apply streaming this way, what can I do to solve the problem? Change the pipeline?<br><br>