<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial">&nbsp;Hello,<br><br>I'm making a registration between 3D MRI and 3D US data. The size of US data is much bigger than MRI. <br>I take some landmarks on both images. <br>Then I use "vtkLandmarkTransform" to get a transform between these landmark points.<br>At last I apply the transform to MRI data by using "vtkImageReslice".<br>So I get a huge size MRI data. How can I crop the data to make the new MRI data have same size and almost same content as US data?<br>Please give me some tips. Thank you for your attention :)<br><br>Here's my code<br>&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPoints&gt; sourcePoints = vtkSmartPointer&lt;vtkPoints&gt;::New();//Input source points<br>&nbsp;&nbsp;&nbsp; for ( int t = 0; t &lt; 6; t++ )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;float sourcePoint[3] = {inital_points_mri[t][0], inital_points_mri[t][1], inital_points_mri[t][2]};<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sourcePoints-&gt;InsertNextPoint(sourcePoint);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPoints&gt; targetPoints = vtkSmartPointer&lt;vtkPoints&gt;::New();//Input target points<br>&nbsp;&nbsp;&nbsp; for ( int t = 0; t &lt; 6; t++ )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;float targetPoint[3] = {inital_points_us[t][0], inital_points_us[t][1], inital_points_us[t][2]};<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;targetPoints-&gt;InsertNextPoint(targetPoint);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkLandmarkTransform&gt; landmarkTransform = vtkSmartPointer&lt;vtkLandmarkTransform&gt;::New();//get landmark transform<br>&nbsp;&nbsp;&nbsp; landmarkTransform-&gt;SetSourceLandmarks(sourcePoints);<br>&nbsp;&nbsp;&nbsp; landmarkTransform-&gt;SetTargetLandmarks(targetPoints);<br>&nbsp;&nbsp;&nbsp; landmarkTransform-&gt;SetModeToSimilarity ();<br>&nbsp;&nbsp;&nbsp; landmarkTransform-&gt;Update(); <br><br>&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageReslice&gt; transform2 = vtkSmartPointer&lt;vtkImageReslice&gt;::New(); // Apply transform<br>&nbsp;&nbsp;&nbsp; transform2-&gt;SetInput(MRIimagedata); // Input MRI image<br>&nbsp;&nbsp;&nbsp; transform2-&gt;AutoCropOutputOn();&nbsp; // I'm not sure I need it or not?<br>&nbsp;&nbsp;&nbsp; // transform2-&gt;SetOutputExtent(0,499,0,389,0,358); // set the extent as US data, but not the same content<br>&nbsp;&nbsp;&nbsp; landmarkTransform-&gt;Inverse();<br>&nbsp;&nbsp;&nbsp; transform2-&gt;SetResliceTransform(landmarkTransform);<br>&nbsp;&nbsp;&nbsp; transform2-&gt;Update();<br>&nbsp;&nbsp;&nbsp; vtkImageData* transformImage = transform2-&gt;GetOutput();<br></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>