You could use vtkDiscreteMarchingCubes and color the result by cell data<br><br>or<br><br>pre-process your data to set all the non-foreground voxels to background, (so as to make it bilelvel) and then run marching cubes to extract each label.<br>
<br><div class="gmail_quote">On Wed, Apr 14, 2010 at 4:44 AM, 朱文武 <span dir="ltr">&lt;<a href="mailto:cool.wenwu@gmail.com">cool.wenwu@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
hi all,<br>  <br>      A problem confused me. I need your help. The
class vtkMarchingCubes has been adapted to construct a specified
structure ( extract specified isosurface),  the member function—
vtkMarchingCubes::setvalue(int i, double value) is used to specify a
particular contour value.  The type of dataset i used was gray bmp
image.  Suppose the dataset contains gray value: 91, 111, 121, 137.<br>
Now the problem is that if i want to construct the anatomy structure whose gray value is 111,  so the code i write is that<br>SetValue(0,
111).  However,  the result of construction is that almost all anatomy
structures whose gray value is 91, 121, 137 have been constructed too.
Why is it happens? what&#39;s the difference between the gray value in the
bmp image and the contour value in this function?  And how to construct
a specified structure?  <br>
<br>If we set the parameter -value to 111,  according to the MC
algorithm,   the specified isosurface should be extracted.  Do i
understand wrong !?<br>On the other hand, if i want to extract multiple
isosurface and control property of each isosurface such as colors, how
to do it? The function SetValue(int i, double value) can not accomplish
the task. Though we can add contour value by increasing the index-i,
the output of the vtkMarchingCubes is combined to the subsequent
filter. Can anyone provide help? Thanks very much !<br>
<br>The relevant code and original image and result of the construction is attached:<br><br>Code:<br>    vtkBMPReader *Image= vtkBMPReader::New();<br>    // read the dataset <br>     Image-&gt;Update();<br><br>    vtkMarchingCubes *skinExtractor=
vtkMarchingCubes::New();//<div>skinGray=220,tendon=10,radius=20,ulna=40,<br>
    skinExtractor-&gt;SetInputConnection(Image-&gt;GetOutputPort());<br>   <span style="background-color: rgb(255, 0, 0);"> skinExtractor-&gt;SetValue(0,111);// input the gray value </span><span style="background-color: rgb(255, 255, 255);"></span><br>




    skinExtractor-&gt;ComputeGradientsOn();<br>    skinExtractor-&gt;ComputeScalarsOff();<br>   <br>    vtkDecimatePro *vdeci;<br>    vdeci-&gt;SetInputConnection(skinExtractor-&gt;GetOutputPort());//<br>    vdeci-&gt;SetTargetReduction(0.6);//<br>




    vdeci-&gt;PreserveTopologyOn();//<br><br>    vtkSmoothPolyDataFilter *vsmoother;<br>    vsmoother-&gt;SetInputConnection(vdeci-&gt;GetOutputPort());//<br>    vsmoother-&gt;SetNumberOfIterations(800);//<br>   <br>    vtkPolyDataNormals *vskinNormal;<br>




    vskinNormal-&gt;SetInputConnection(vsmoother-&gt;GetOutputPort());//<br>    vskinNormal-&gt;SetFeatureAngle(60.0);//<br><br>    vtkPolyDataMapper *vskinMapper;<br>    vskinMapper-&gt;SetInputConnection(vskinNormal-&gt;GetOutputPort());<br>




    vskinMapper-&gt;ScalarVisibilityOff();//<br>   <br>    vtkActor *vskin;<br>    vskin-&gt;SetMapper(vskinMapper);//<br>    vskin-&gt;GetProperty()-&gt;SetColor(1,0,0);<br><br>The original image :<br><img title="TCVH_1300副本.bmp" alt="TCVH_1300副本.bmp" src="cid:ii_127fb7d0142c1f89" width="149" height="174"><br>


</div>
<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br><br clear="all"><br><br>