Thank you Francois,<br><br>I have one more problem at  scale-&gt;SetInputConnection or  scale-&gt;SetInput. My code looks like this:<br><br>    vtkDICOMImageReader *dicomReader = vtkDICOMImageReader::New();<br>    dicomReader-&gt;SetDirectoryName(&quot;D:/MANIX/CER-CT/AVEC I.V&quot;);<br>
    dicomReader-&gt;SetDataScalarTypeToUnsignedShort();<br>    dicomReader-&gt;UpdateWholeExtent();<br>    double range[1];<br>    dicomReader-&gt;GetOutput()-&gt;GetPointData()-&gt;GetScalars()-&gt;GetRange(range);<br>    //I could have used <br>
    //dicomReader-&gt;GetOutput()-&gt;GetScalarRange(range);<br><br>    vtkImageShiftScale *scale = vtkImageShiftScale::New();<br>    scale-&gt;SetInputConnection(dicomReader-&gt;GetOutputPort());<br>    //scale-&gt;SetInput(dicomReader-&gt;GetOutput());<br>
    scale-&gt;SetShift(-range[0]);<br>    scale-&gt;SetScale(VTK_UNSIGNED_SHORT_MAX/(range[1]-range[0]));<br>    scale-&gt;SetOutputScalarTypeToUnsignedShort();<br>    scale-&gt;Update();<br><br>I got this error:<br><br>Unhandled exception at 0x00594c21 in RayCast.exe: 0xC0000005: Access violation reading location 0x40a7fc34.<br>
<br>at <br><br>int vtkAlgorithm::GetNumberOfOutputPorts()<br>{<br>  return this-&gt;OutputPortInformation-&gt;GetNumberOfInformationObjects();<br>}<br><br>and if I used scale-&gt;SetInput(dicomReader-&gt;GetOutput()); I got:<br>
<br>Unhandled exception at 0x0058dae3 in RayCast.exe: 0xC0000005: Access violation reading location 0x40a7fc2c.<br><br>at <br><br>int vtkAlgorithm::HasExecutive()<br>{<br>  return this-&gt;Executive ? 1 : 0;<br>}<br><br>Any thoughts?<br>
<br>Thanks,<br>Alex<br>