<div>Dear all:<br>&nbsp; I'm now using QT+ITK+VTK combination. I loaded a 3D image of analyze format using itk and change it to vtk image, and I'd like to show the slices in a qvtkWidget by vtkImageViewer2. The pipeline is as below:<br>itkImageFileReader-&gt;itkImageToVTKImageFilter-&gt;vtkImageViewer2<br>The problem is I always get a core dump when I interact with the slice like moving mouse on it. I don't know why exactly. Since when I just use itk+vtk without using qt, it seems fine, and when I change to import a raw data just using vtk+qt combination, it seems still fine. I believe it has something to do with interactor style or sth, but I'm not sure. Can anybody help me out here? I'm exausted about it. Thank you in advance!Below are my codes:<br><br>&nbsp;&nbsp;&nbsp; typedef signed short&nbsp; InputPixelType;<br>&nbsp;&nbsp;&nbsp; typedef unsigned char MaskPixelType;<br>&nbsp;&nbsp;&nbsp; const unsigned int Dimension = 3;<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; InputPixelType, Dimension &gt; InputImageType;<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; MaskPixelType,&nbsp; Dimension &gt; MaskImageType;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; typedef itk::ImageFileReader&lt; InputImageType &gt; ReaderType;<br><br>&nbsp;&nbsp;&nbsp; ReaderType::Pointer reader&nbsp; = ReaderType::New();<br>&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName( "/home/cliff/research/digimouse/ct_380x992x208.hdr" );<br>&nbsp;&nbsp;&nbsp; reader-&gt;Update();<br>&nbsp;&nbsp;&nbsp; typedef itk::VTKImageExport&lt; InputImageType &gt; ExportFilter1Type;<br>&nbsp;&nbsp;&nbsp; ExportFilter1Type::Pointer itkExporter1 = ExportFilter1Type::New();<br>&nbsp;&nbsp;&nbsp; itkExporter1-&gt;SetInput( reader-&gt;GetOutput() );<br><br>&nbsp;&nbsp;&nbsp; // Create the vtkImageImport and connect it to the<br>&nbsp;&nbsp;&nbsp; // itk::VTKImageExport instance.<br>&nbsp;&nbsp;&nbsp; vtkImageImport* vtkImporter1 = vtkImageImport::New();&nbsp; <br>&nbsp;&nbsp;&nbsp; ConnectPipelines(itkExporter1, vtkImporter1);<br><br>&nbsp;&nbsp;&nbsp; vtkImporter1-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageData&gt; image = vtkSmartPointer&lt;vtkImageData&gt;::New();<br>&nbsp;&nbsp;&nbsp; image = vtkImporter1-&gt;GetOutput();<br>&nbsp;&nbsp; image -&gt; Update();<br><br>&nbsp;&nbsp;&nbsp; vtkImageViewer2 *viewer = vtkImageViewer2::New();<br>&nbsp;&nbsp;&nbsp; vtkInteractorStyleImage * interactorStyle = vtkInteractorStyleImage::New();<br>&nbsp;&nbsp;&nbsp; interactorStyle-&gt;AutoAdjustCameraClippingRangeOff();<br>&nbsp;&nbsp;&nbsp; interactorStyle -&gt; SetInteractor(qvtkWidget-&gt;GetInteractor());<br>&nbsp;&nbsp;&nbsp; interactorStyle = viewer-&gt;GetInteractorStyle();<br>&nbsp;&nbsp;&nbsp; qvtkWidget-&gt;GetInteractor()-&gt;SetInteractorStyle( interactorStyle );<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetupInteractor(qvtkWidget-&gt;GetInteractor());<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetInput(image);<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetSliceOrientationToXY();<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetSlice(50);<br>&nbsp;&nbsp;&nbsp; viewer-&gt;UpdateDisplayExtent();<br>&nbsp;&nbsp;&nbsp; viewer-&gt;Render();<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetColorWindow(255);<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetColorLevel(128);<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetRenderWindow(renWin);<br>&nbsp;&nbsp;&nbsp; viewer-&gt;SetRenderer(renderer); <br><br>&nbsp;&nbsp;&nbsp; // Set the background to something grayish<br>&nbsp;&nbsp;&nbsp; renderer-&gt;SetBackground(0.4392, 0.5020, 0.5647);<br>&nbsp;&nbsp;&nbsp; //renderer-&gt;SetActiveCamera(camera);<br>&nbsp;&nbsp;&nbsp; renderer-&gt;ResetCamera();<br>&nbsp;&nbsp;&nbsp; //renderer-&gt;ResetCameraClippingRange ();<br>&nbsp;&nbsp;&nbsp; qvtkWidget-&gt;GetRenderWindow()-&gt;Render();<br><br></div><br><!-- footer --><br><span title="neteasefooter"/><hr/>
<a href="http://512.mail.163.com/mailstamp/stamp/dz/activity.do?from=footer">穿越地震带 纪念汶川地震一周年</a>
</span>