Bill, thanks very much ! <br>Here are the all related codes:<br>vtkSmartPointer&lt;vtkBMPReader&gt; m_read = vtkSmartPointer&lt;vtkBMPReader&gt;::New();<br>m_read-&gt;SetFilePrefix(&quot;C:/Data/brain/TCVH_&quot;);//<br>m_read-&gt;SetFilePattern(&quot;%s%d.bmp&quot;); //<br>

m_read-&gt;Allow8BitBMPOn();<br>m_read-&gt;SetDataByteOrderToLittleEndian();<br>m_read-&gt;SetFileNameSliceOffset(5);//<br>m_read-&gt;SetFileNameSliceSpacing(1);//<br>m_read-&gt;SetNumberOfScalarComponents(3);//<br>m_read-&gt;SetDataOrigin(0.0,0.0,0.0);//<br>

m_read-&gt;SetDataSpacing(0.167*4,0.167*4,1);//<br>m_read-&gt;SetDataExtent(0,299,0,345,1300,1320);//<br>m_read-&gt;Update();<br><br>vtkSmartPointer&lt;vtkDiscreteMarchingCubes&gt; cube =           <br>  Â  vtkSmartPointer&lt;vtkDiscreteMarchingCubes&gt;::New() ;<br>

cube-&gt;SetInput((vtkDataObject*) m_read-&gt;GetOutput() );<br>cube-&gt;SetValue(0, 111);<br>cube-&gt;SetValue(1, 121);<br>cube-&gt;Update() ;<br><br>vtkSmartPointer&lt;vtkDecimatePro&gt;  deci = vtkSmartPointer&lt;vtkDecimatePro&gt;::New();<br>

deci-&gt;SetInputConnection(cube-&gt;GetOutputPort());//<br>deci-&gt;SetTargetReduction(0.5); //<br>deci-&gt;PreserveTopologyOn(); //<br>deci-&gt;ReleaseDataFlagOn();<br><br>vtkSmartPointer&lt;vtkWindowedSincPolyDataFilter&gt; smoother= vtkSmartPointer&lt;vtkWindowedSincPolyDataFilter&gt;::New();<br>

smoother-&gt;SetInput(deci-&gt;GetOutput());<br>smoother-&gt;SetNumberOfIterations(30) ;<br>smoother-&gt;NonManifoldSmoothingOn();<br>smoother-&gt;NormalizeCoordinatesOn();<br>smoother-&gt;GenerateErrorScalarsOn() ;<br>smoother-&gt;Update();<br>

<br>vtkSmartPointer&lt;vtkLookupTable&gt; colorLookupTable= vtkSmartPointer&lt;vtkLookupTable&gt;::New();<br><br>colorLookupTable-&gt;SetTableRange(0, 122); <br>colorLookupTable-&gt;SetNumberOfTableValues(123);<br>colorLookupTable-&gt;Build();<br>

for (int i =0; i &lt; 111; i++)<br>{<br>    colorLookupTable-&gt;SetTableValue(i , i/255.0, i/255.0,i/255.0);<br>}<br>colorLookupTable-&gt;SetTableValue(111, 1,0,0,1);<br>for (int j = 112; j &lt;120; j++)<br>{<br>    colorLookupTable-&gt;SetTableValue(j , j/255.0, j/255.0, j/255.0);<br>

<br>}<br>colorLookupTable-&gt;SetTableValue(121, 0,1,1,1);<br>colorLookupTable-&gt;SetTableValue(122, 0,1,1,1);<br><br>vtkSmartPointer&lt;vtkPolyDataNormals&gt; triangleCellNormals = vtkSmartPointer&lt;vtkPolyDataNormals&gt;::New();<br>

triangleCellNormals-&gt;SetInput(smoother-&gt;GetOutput());<br>triangleCellNormals-&gt;ComputeCellNormalsOn();<br>triangleCellNormals-&gt;ComputePointNormalsOff();<br>triangleCellNormals-&gt;ConsistencyOn();<br>triangleCellNormals-&gt;AutoOrientNormalsOn();<br>

triangleCellNormals-&gt;Update() ;<br><br>vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper = vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>mapper-&gt;SetInput(triangleCellNormals-&gt;GetOutput()); // #this is better for vis<br>

mapper-&gt;ScalarVisibilityOn() ;//#show colour <br>mapper-&gt;SetScalarRange(colorLookupTable-&gt;GetTableRange()); <br>mapper-&gt;SetScalarModeToUseCellData() ; //  contains the label eg. 31<br>//mapper-&gt;SetScalarModeToUsePointData() ;//#the smoother error relates to the verts<br>

mapper-&gt;SetLookupTable(colorLookupTable);<br> <br>vtkSmartPointer&lt;vtkActor&gt; actor = vtkSmartPointer&lt;vtkActor&gt;::New();<br>actor-&gt;SetMapper(mapper);<br><br>Waiting for suggestion, thanks in advance !<br><br>

Wenwu<br><br><br><br><div class="gmail_quote">On Fri, Apr 16, 2010 at 12:01 PM, Bill Lorensen <span dir="ltr">&lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@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;">

The lookup table and mapper look OK to me. Can you attach the entire<br>
program if it is not too large?<br>
<br>
Bill<br>
<div><div></div><div class="h5"><br>
On Thu, Apr 15, 2010 at 9:00 PM, æœ±æ–‡æ­¦ &lt;<a href="mailto:cool.wenwu@gmail.com">cool.wenwu@gmail.com</a>&gt; wrote:<br>
&gt; hi all,<br>
&gt;<br>
&gt; Â Â Â Â Â  I sent the message last night!  However, no one responded ! So, i send<br>
&gt; it again. Please forgive me, if it disrupts you!<br>
&gt;<br>
&gt; I use vtkDiscreteMarchingCubes to reconstruct anatomy structure, and use the<br>
&gt; vtkLookupTable to map the color. Now, i design the color map as follows:<br>
&gt; gray value (111) to red,<br>
&gt; gray value(121) to blue.<br>
&gt; Other gray value I don&#39;t care.<br>
&gt;<br>
&gt; Also, the parameter I set in SetValue() of  vtkDiscreteMarchingCubes is:<br>
&gt; SetValue(0, 111);<br>
&gt; SetValue(1, 121);<br>
&gt;<br>
&gt; Then i set the lookup table as follows:<br>
&gt; vtkSmartPointer&lt;vtkLookupTable&gt; colorLookupTable=<br>
&gt; vtkSmartPointer&lt;vtkLookupTable&gt;::New();<br>
&gt; colorLookupTable-&gt;SetTableRange(0, 122); //<br>
&gt; colorLookupTable-&gt;SetNumberOfTableValues(123);<br>
&gt; colorLookupTable-&gt;Build();<br>
&gt;<br>
&gt; for (int i =0; i &lt; 111; i++)<br>
&gt; {<br>
&gt; Â Â Â  colorLookupTable-&gt;SetTableValue(i , i/255.0, i/255.0,i/255.0); // i<br>
&gt; don&#39;t care this loop<br>
&gt; }<br>
&gt; colorLookupTable-&gt;SetTableValue(111, 1,0,0,1); // this is essential for me<br>
&gt; for (int j = 112; j &lt;120; j++)<br>
&gt; {<br>
&gt; Â Â Â  colorLookupTable-&gt;SetTableValue(j , j/255.0, j/255.0, j/255.0); // i<br>
&gt; don&#39;t care this loop<br>
&gt;<br>
&gt; }<br>
&gt; colorLookupTable-&gt;SetTableValue(121, 0,0,1,1);<br>
&gt; colorLookupTable-&gt;SetTableValue(122, 0,0,1,1);<br>
&gt;<br>
&gt; vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper =<br>
&gt; vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>
&gt; ...<br>
&gt; mapper-&gt;ScalarVisibilityOn() ;//#show colour<br>
&gt; mapper-&gt;SetScalarRange(colorLookupTable-&gt;GetTableRange());<br>
&gt; mapper-&gt;SetScalarModeToUseCellData() ;<br>
&gt; mapper-&gt;SetLookupTable(colorLookupTable);<br>
&gt;<br>
&gt; The result of construction is that two structures whose gray value is 111<br>
&gt; and 121 were reconstructed.<br>
&gt; However, the color of these actors is the same- white.<br>
&gt; Ccould anyone tell me why and give some suggestions?<br>
&gt;<br>
&gt; Thanks<br>
&gt; Wenwu<br>
</div></div>&gt; _______________________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the VTK FAQ at:<br>
&gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;<br>
&gt;<br>
</blockquote></div><br><br clear="all"><br>-- <br>祝<br>工作愉快,身体健康!<br>