hey, bill, thanks very much !  I find the culprit !<br>Firstly, i try mapper-&gt;SetInput(cube-&gt;GetOutput()). And, the result is satisfactory. I reach the destination. So, i think there are must be some problems in the pipeline.<br>

Secondely, i remove the vtkDecimatePr from the pipeline, and surprisedly find that the the actor is colored correctly. And if this class is put back, the result is opposite.  However, i can not find  the reason why this class has a bad effect on the color of cells.<br>

<br>In conclusion, i remove that class, and the program runs correctly. Your think pattern in solving problems in the vtk programming style is great! Have a good weekend!<br><br><br>Thanks<br>Wenwu    <br><br><br><div class="gmail_quote">

On Sat, Apr 17, 2010 at 9:49 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;">

<div>thanks ,bill! i will try, then tell you the result . <br><br></div><div><div></div><div class="h5">
<div class="gmail_quote">On Sat, Apr 17, 2010 at 3:53 AM, Bill Lorensen <span dir="ltr">&lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">Another idea. It seems that one pipeline piece is changing the cell<br>data. Try changing the mapper&#39;s input to determine which filter is the<br>


culprit.<br><br>Try<br>mapper-&gt;SetInput(cube-&gt;GetOutput());<br>first.<br><br>Do you get the proper coloring?<br><font color="#888888"><br>bill<br></font>
<div>
<div></div>
<div><br><br>On Fri, Apr 16, 2010 at 3:39 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt; wrote:<br>&gt; Try,<br>&gt; smoother-&gt;GenerateErrorScalarsOff() ;<br>


&gt;<br>&gt; On Fri, Apr 16, 2010 at 1:30 AM, 朱文武 &lt;<a href="mailto:cool.wenwu@gmail.com" target="_blank">cool.wenwu@gmail.com</a>&gt; wrote:<br>&gt;&gt; Bill, thanks very much !<br>&gt;&gt; Here are the all related codes:<br>

&gt;&gt; vtkSmartPointer&lt;vtkBMPReader&gt; m_read = vtkSmartPointer&lt;vtkBMPReader&gt;::New();<br>
&gt;&gt; m_read-&gt;SetFilePrefix(&quot;C:/Data/brain/TCVH_&quot;);//<br>&gt;&gt; m_read-&gt;SetFilePattern(&quot;%s%d.bmp&quot;); //<br>&gt;&gt; m_read-&gt;Allow8BitBMPOn();<br>&gt;&gt; m_read-&gt;SetDataByteOrderToLittleEndian();<br>


&gt;&gt; m_read-&gt;SetFileNameSliceOffset(5);//<br>&gt;&gt; m_read-&gt;SetFileNameSliceSpacing(1);//<br>&gt;&gt; m_read-&gt;SetNumberOfScalarComponents(3);//<br>&gt;&gt; m_read-&gt;SetDataOrigin(0.0,0.0,0.0);//<br>&gt;&gt; m_read-&gt;SetDataSpacing(0.167*4,0.167*4,1);//<br>


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


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


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


&gt;&gt; deci-&gt;ReleaseDataFlagOn();<br>&gt;&gt;<br>&gt;&gt; vtkSmartPointer&lt;vtkWindowedSincPolyDataFilter&gt; smoother=<br>&gt;&gt; vtkSmartPointer&lt;vtkWindowedSincPolyDataFilter&gt;::New();<br>&gt;&gt; smoother-&gt;SetInput(deci-&gt;GetOutput());<br>


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


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


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


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


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


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


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


&gt;&gt; vis<br>&gt;&gt; mapper-&gt;ScalarVisibilityOn() ;//#show colour<br>&gt;&gt; mapper-&gt;SetScalarRange(colorLookupTable-&gt;GetTableRange());<br>&gt;&gt; mapper-&gt;SetScalarModeToUseCellData() ; //  contains the label eg. 31<br>


&gt;&gt; //mapper-&gt;SetScalarModeToUsePointData() ;//#the smoother error relates to<br>&gt;&gt; the verts<br>&gt;&gt; mapper-&gt;SetLookupTable(colorLookupTable);<br>&gt;&gt;<br>&gt;&gt; vtkSmartPointer&lt;vtkActor&gt; actor = vtkSmartPointer&lt;vtkActor&gt;::New();<br>


&gt;&gt; actor-&gt;SetMapper(mapper);<br>&gt;&gt;<br>&gt;&gt; Waiting for suggestion, thanks in advance !<br>&gt;&gt;<br>&gt;&gt; Wenwu<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; On Fri, Apr 16, 2010 at 12:01 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;<br>


&gt;&gt; wrote:<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; The lookup table and mapper look OK to me. Can you attach the entire<br>&gt;&gt;&gt; program if it is not too large?<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Bill<br>&gt;&gt;&gt;<br>


&gt;&gt;&gt; On Thu, Apr 15, 2010 at 9:00 PM, 朱文武 &lt;<a href="mailto:cool.wenwu@gmail.com" target="_blank">cool.wenwu@gmail.com</a>&gt; wrote:<br>&gt;&gt;&gt; &gt; hi all,<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt;       I sent the message last night!  However, no one responded ! So, i<br>


&gt;&gt;&gt; &gt; send<br>&gt;&gt;&gt; &gt; it again. Please forgive me, if it disrupts you!<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; I use vtkDiscreteMarchingCubes to reconstruct anatomy structure, and use<br>&gt;&gt;&gt; &gt; the<br>


&gt;&gt;&gt; &gt; vtkLookupTable to map the color. Now, i design the color map as follows:<br>&gt;&gt;&gt; &gt; gray value (111) to red,<br>&gt;&gt;&gt; &gt; gray value(121) to blue.<br>&gt;&gt;&gt; &gt; Other gray value I don&#39;t care.<br>


&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Also, the parameter I set in SetValue() of  vtkDiscreteMarchingCubes is:<br>&gt;&gt;&gt; &gt; SetValue(0, 111);<br>&gt;&gt;&gt; &gt; SetValue(1, 121);<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Then i set the lookup table as follows:<br>


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


&gt;&gt;&gt; &gt; colorLookupTable-&gt;Build();<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; for (int i =0; i &lt; 111; i++)<br>&gt;&gt;&gt; &gt; {<br>&gt;&gt;&gt; &gt;     colorLookupTable-&gt;SetTableValue(i , i/255.0, i/255.0,i/255.0); // i<br>


&gt;&gt;&gt; &gt; don&#39;t care this loop<br>&gt;&gt;&gt; &gt; }<br>&gt;&gt;&gt; &gt; colorLookupTable-&gt;SetTableValue(111, 1,0,0,1); // this is essential for<br>&gt;&gt;&gt; &gt; me<br>&gt;&gt;&gt; &gt; for (int j = 112; j &lt;120; j++)<br>


&gt;&gt;&gt; &gt; {<br>&gt;&gt;&gt; &gt;     colorLookupTable-&gt;SetTableValue(j , j/255.0, j/255.0, j/255.0); // i<br>&gt;&gt;&gt; &gt; don&#39;t care this loop<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; }<br>&gt;&gt;&gt; &gt; colorLookupTable-&gt;SetTableValue(121, 0,0,1,1);<br>


&gt;&gt;&gt; &gt; colorLookupTable-&gt;SetTableValue(122, 0,0,1,1);<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper =<br>&gt;&gt;&gt; &gt; vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>


&gt;&gt;&gt; &gt; ...<br>&gt;&gt;&gt; &gt; mapper-&gt;ScalarVisibilityOn() ;//#show colour<br>&gt;&gt;&gt; &gt; mapper-&gt;SetScalarRange(colorLookupTable-&gt;GetTableRange());<br>&gt;&gt;&gt; &gt; mapper-&gt;SetScalarModeToUseCellData() ;<br>


&gt;&gt;&gt; &gt; mapper-&gt;SetLookupTable(colorLookupTable);<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; The result of construction is that two structures whose gray value is<br>&gt;&gt;&gt; &gt; 111<br>&gt;&gt;&gt; &gt; and 121 were reconstructed.<br>


&gt;&gt;&gt; &gt; However, the color of these actors is the same- white.<br>&gt;&gt;&gt; &gt; Ccould anyone tell me why and give some suggestions?<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Thanks<br>&gt;&gt;&gt; &gt; Wenwu<br>


&gt;&gt;&gt; &gt; _______________________________________________<br>&gt;&gt;&gt; &gt; Powered by <a href="http://www.kitware.com/" target="_blank">www.kitware.com</a><br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Visit other Kitware open-source projects at<br>


&gt;&gt;&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Please keep messages on-topic and check the VTK FAQ at:<br>


&gt;&gt;&gt; &gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt; Follow this link to subscribe/unsubscribe:<br>&gt;&gt;&gt; &gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>


&gt;&gt;&gt; &gt;<br>&gt;&gt;&gt; &gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; --<br>&gt;&gt; 祝<br>&gt;&gt; 工作愉快,身体健康!<br>&gt;&gt;<br>&gt;<br></div></div></blockquote></div><br><br clear="all"><br></div></div><font color="#888888">-- </font><br>

</blockquote></div><br>