<div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div>Hi</div><div><br></div><div>I asked alot in VTK forum without reply .I finished alot of progress , my pipeline is </div><div><br></div><div>reading DICOM -> build iso surface , cut and process on the 3D.</div>
<div><br></div><div>the problem is that the large is the dataset the slow is the output and the performance decrease incredibly </div><div><br></div><div>I use vtkContourFilter for rendering 3D , dod uhave any suggestion to fix the performance , this is the code I use </div>
<div><br></div><div><div> vtk.vtkDICOMImageReader VDR = new vtk.vtkDICOMImageReader();</div><div> VDR.SetDirectoryName(@"E:\Master Degree\DataSet\case2\DICOM\PA1\ST1\SE2");</div><div> VDR.SetDataOrigin(0, 0, 0);</div>
<div> VDR.Update();</div><div><br></div><div> // decrease the dataset data for large data preprocessing </div><div><br></div><div> vtkImageShrink3D VIS = new vtkImageShrink3D();</div><div>
VIS.SetShrinkFactors(2, 2, 2);</div><div> VIS.SetInputConnection(VDR.GetOutputPort());</div><div> VIS.Update();</div><div><br></div><div> vtkImageThreshold VIT = new vtkImageThreshold();</div>
<div> VIT.ThresholdBetween(200, 2000);</div><div> VIT.SetInputConnection(VIS.GetOutputPort());</div><div> VIT.Update();</div><div><br></div><div> ///// Start the creation of volume rendering </div>
<div><br></div><div> //1. Gget the range of data </div><div> vtk.vtkImageChangeInformation VIC = new vtk.vtkImageChangeInformation();</div><div> VIC.SetInput(VDR.GetOutput());</div><div> VIC.CenterImageOn();</div>
<div> VIC.Update();</div><div><br></div><div> vtk.vtkImageData VoxelData = new vtk.vtkImageData();</div><div> VoxelData = VIC.GetOutput();</div><div><br></div><div> double[] metaScalarRange = VoxelData.GetScalarRange();</div>
<div><br></div><div><br></div><div> // Render the skin - Soft tissue </div><div> double isovalue= - 963 ;//= 0.8 * (metaScalarRange[1] + metaScalarRange[0]);</div><div><br></div><div><br></div><div>
vtkContourFilter skinExtractor = new vtkContourFilter();</div>
<div> skinExtractor.SetInputConnection(VIT.GetOutputPort());</div><div> skinExtractor.SetValue(0, isovalue);</div><div> //skinExtractor.GenerateValues(1,-300,300);</div><div> skinExtractor.ComputeGradientsOn();</div>
<div> </div><div> skinExtractor.Update();</div></div><div><br></div></div>
</div><br></div>