<div dir="ltr">Hi Quental,<div><br></div><div>The solution is as follows:</div><div><br></div><div>    cast.Update()</div><div>    implicit_volume.SetVolume(cast.GetOutput()) <br></div><div><br></div><div>The VTK pipeline recognizes two very distinct kinds of objects:</div><div><br></div><div>The vtkImageCast object is a vtk "algorithm" object (derived from vtkAlgorithm).</div><div>The vtkImageData object is a vtk "data" object (derived from vtkDataObject).</div><div><br></div><div>An algorithm can never be data.  An algorithm _operates_ on data.</div><div>So the algorithm's input is data, and its output is data.</div><div><br></div><div> - David</div><div><br></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jun 13, 2015 at 6:36 AM, Quentan Qi <span dir="ltr"><<a href="mailto:quentan@gmail.com" target="_blank">quentan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi there,<br>
<br>
After casting an image using vtkImageCast, it becomes a vtkImageCast object, but I want to use vtkImplicitVolume which requires vtkImageData type. How to convert vtkImageCast back to vtkImageData?<br>
<br>
```Python<br>
<br>
reader = read_DICOM(path_dicom)  # result is a vtkImageData<br>
<br>
cast = vtk.vtkImageCast()<br>
cast.SetInputData(reader)  # vtkImageData —> vtkImageCast<br>
cast.SetOutputScalarTypeToShort()  # I need this type<br>
<br>
implicit_volume = vtk.vtkImplicitVolume()<br>
implicit_volume.SetVolume(reader)  # It works but I need “cast” instead<br>
# implicit_volume.SetVolume(cast)  # It’s wrong because vtkImageData is required, but a vtkImageCast was given<br>
# other things<br>
<br>
```<br>
<br>
Thanks a lot!<br>
<br>
Cheers,<br>
Quentan<br>
</blockquote></div><br></div></div></div>