<div dir="ltr">Hi,<br><br>I&#39;m trying to read a DICOM volume and extract orthogonal slices from it using vtkImageReslice. After I extract the slice I&#39;m using a vtkImageViewer to view the slice. Here is the code:<br>
<br>&nbsp;&nbsp;&nbsp; std::string strFolderPath = &quot;/home/talita/Desktop/WRIX/WRIST RIGHT/T2 TSE AX FS RT. - 3&quot;;<br>&nbsp;&nbsp;&nbsp; reader = vtkDICOMImageReader::New(); <br>&nbsp;&nbsp;&nbsp; reader-&gt;SetDirectoryName(strFolderPath.c_str());<br>&nbsp;&nbsp;&nbsp; reader-&gt;Update();<br>
&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; reader-&gt;SetDataScalarTypeToUnsignedShort();<br>&nbsp; &nbsp; reader-&gt;UpdateWholeExtent(); <br>&nbsp; &nbsp; reader-&gt;GetOutput()-&gt;UpdateInformation();<br><br>&nbsp;&nbsp;&nbsp; double sp[3];<br>&nbsp; &nbsp; reader-&gt;GetOutput()-&gt;GetSpacing(sp);<br>
&nbsp;&nbsp;&nbsp; int extent[6];<br>&nbsp;&nbsp;&nbsp; double origin[3];<br>&nbsp; &nbsp; reader-&gt;GetOutput()-&gt;GetWholeExtent(extent);<br>&nbsp; &nbsp; reader-&gt;GetOutput()-&gt;GetOrigin(origin);<br><br>&nbsp; &nbsp; double center[3];<br>&nbsp; &nbsp; center[0] = origin[0] + sp[0] * 0.5 * (extent[0] + extent[1]); <br>
&nbsp; &nbsp; center[1] = origin[1] + sp[1] * 0.5 * (extent[2] + extent[3]); <br>&nbsp; &nbsp; center[2] = origin[2] + sp[2] * 0.5 * (extent[4] + extent[5]); <br><br>&nbsp; &nbsp; // Matrices for axial, coronal, sagittal, oblique view orientations<br>
&nbsp; &nbsp; static double axialElements[16] = {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 0, 0, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 1, 0, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0, 1, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0, 0, 1 };<br><br>&nbsp; &nbsp; static double coronalElements[16] = {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 0, 0, 0,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0, 1, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,-1, 0, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0, 0, 1 };<br><br>&nbsp; &nbsp; static double sagittalElements[16] = {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0,-1, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 0, 0, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,-1, 0, 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, 0, 0, 1 };<br>
<br>&nbsp; &nbsp; vtkMatrix4x4 *resliceAxes = vtkMatrix4x4::New();<br>&nbsp; &nbsp; resliceAxes-&gt;DeepCopy(axialElements);<br>&nbsp; &nbsp; resliceAxes-&gt;SetElement(0, 3, center[0]);<br>&nbsp; &nbsp; resliceAxes-&gt;SetElement(1, 3, center[1]);<br>&nbsp; &nbsp; resliceAxes-&gt;SetElement(2, 3, center[2]);<br>
<br>&nbsp; &nbsp; // Extract a slice in the desired orientation<br>&nbsp; &nbsp; vtkImageReslice *reslice = vtkImageReslice::New();<br>&nbsp; &nbsp; reslice-&gt;SetInputConnection(reader-&gt;GetOutputPort());<br>&nbsp; &nbsp; reslice-&gt;SetOutputDimensionality(2);<br>
&nbsp; &nbsp; reslice-&gt;SetResliceAxes(resliceAxes);<br>&nbsp; &nbsp; //reslice-&gt;SetInterpolationModeToNearestNeighbor();<br><br>&nbsp;&nbsp;&nbsp; // renArea-&gt;get_vtk_viewer() returns a vtkImageViewer<br><br>&nbsp;&nbsp;&nbsp; renArea-&gt;get_vtk_viewer()-&gt;SetInputConnection(reslice-&gt;GetOutputPort());<br>
&nbsp;&nbsp;&nbsp; renArea-&gt;get_vtk_viewer()-&gt;SetColorWindow(255);<br>&nbsp;&nbsp;&nbsp; renArea-&gt;get_vtk_viewer()-&gt;SetColorLevel(127);<br>&nbsp;&nbsp;&nbsp; renArea-&gt;get_vtk_viewer()-&gt;Render();<br><br>Why I can&#39;t see the slice? Everything is black! Could anyone help me?<br>
<br>Thank you,<br><br>Talita<br></div>