<div dir="ltr">Dear Jim<div><br></div><div>I used the below code but the output still contain internal structure as attached output display </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> vtkImageThreshold VIT = new vtkImageThreshold();</div>
<div> VIT.ThresholdBetween(-300, 300);</div><div> VIT.SetInputConnection(VDR.GetOutputPort());</div><div> </div><div> VIT.Update();</div><div><br></div><div> vtk.vtkImageIslandRemoval2D ImageIslandRemoval2D = new vtk.vtkImageIslandRemoval2D();</div>
<div> ImageIslandRemoval2D.SetInput(VIT.GetOutput());</div><div> ImageIslandRemoval2D.SetAreaThreshold(1000);</div><div><br></div><div> vtk.vtkContourFilter skinExtractor = new vtk.vtkContourFilter();</div>
<div> skinExtractor.SetInputConnection(ImageIslandRemoval2D.GetOutputPort());</div><div> //skinExtractor.SetValue(0, -500);</div><div> skinExtractor.GenerateValues(1, -300, 300);</div><div>
skinExtractor.ComputeGradientsOn();</div><div><br></div><div> vtk.vtkPolyDataConnectivityFilter VPDC = new vtk.vtkPolyDataConnectivityFilter();</div><div> VPDC.SetInput(skinExtractor.GetOutput());</div>
<div> VPDC.SetExtractionModeToLargestRegion();</div><div> VPDC.Update();</div><div><br></div><div> // map to graphics library </div><div> vtkPolyDataMapper map = new vtkPolyDataMapper();</div>
<div> map.SetInput(VPDC.GetOutput());</div><div><br></div><div> // actor coordinates geometry, properties, transformation </div><div> vtkActor aSphere = new vtkActor();</div><div> aSphere.SetMapper(map);</div>
<div> aSphere.GetProperty().SetColor(0, 0, 1); // sphere color blue</div><div><br></div><div> // a renderer and render window </div><div> vtkRenderer ren1 = new vtkRenderer();</div><div> vtkRenderWindow renWin = new vtkRenderWindow();</div>
<div> renWin.AddRenderer(ren1);</div><div><br></div><div> // an interactor </div><div> vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();</div><div> iren.SetRenderWindow(renWin);</div>
<div><br></div><div> // add the actor to the scene </div><div> ren1.AddActor(aSphere);</div><div> ren1.SetBackground(1, 1, 1); // Background color white</div><div><br></div><div> // render an image (lights and cameras are created automatically) </div>
<div> renWin.Render();</div><div><br></div><div> // begin mouse interaction </div><div> iren.Start();</div><div> // release memory and return </div><div> VPDC.Dispose();</div>
<div> map.Dispose();</div><div> aSphere.Dispose();</div><div> ren1.Dispose();</div><div> renWin.Dispose();</div><div> iren.Dispose(); </div><div> </div></div><div>Any suggestion please </div>
<div><br></div><div>Best regards <br><br><div class="gmail_quote">On Sun, Oct 10, 2010 at 12:02 PM, Jim Peterson <span dir="ltr"><<a href="mailto:jimcp@cox.net">jimcp@cox.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Ali Habib wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'm sorry for disturbance , but could you give me sample example<br>
Best regards<br>
<br>
</blockquote></div>
Ali,<br>
<br>
vtkContourFilter has a function GenerateValues() that creates contours for an equally distributed set of values between low and high specified. in the snippet below, VoxelData is an instance of vtkImageData.<br>
<br>
...<br>
vtkContourFilter skinExtractor = new vtkContourFilter();<br>
skinExtractor.SetInput(VoxelData);<br>
skinExtractor.GenerateValues(3, -200, 2300);<br>
...<br>
<br>
This example gives 3 contours at -200, 1050 and 2300. to search for tissues I think I would look in the range of -300 to 300. I think there is a fairly wide range of values that all resolve to some aspect of skin.<br>
<br>
HTH,<br><font color="#888888">
Jim<br>
<br>
</font></blockquote></div><br></div></div>