On Thu, Feb 17, 2011 at 7:40 AM, Xiaopeng Yang &lt;<a href="mailto:yxp233@postech.ac.kr">yxp233@postech.ac.kr</a>&gt; wrote:<br>&gt;<br>&gt; Wow, that’s a great project! But it is hard for me to understand it. I applied vtkImageBlend to combine the original and mask images. That’s a pretty easy way for me. But I cannot change the mask image color. Do you have any idea to change the mask image color?<br>
&gt;<br>&gt;  <br>&gt;<br>&gt;  <br>&gt;<br>&gt;   vtkSmartPointer&lt;vtkLookupTable&gt; table1 = vtkSmartPointer&lt;vtkLookupTable&gt;::New();<br>&gt;<br>&gt;   table1-&gt;SetRange(100, 150);<br>&gt;<br>&gt;   table1-&gt;SetValueRange(0.0, 1.0);<br>
&gt;<br>&gt;   table1-&gt;SetSaturationRange(0.0, 0.0);<br>&gt;<br>&gt;   table1-&gt;SetRampToLinear();<br>&gt;<br>&gt;   table1-&gt;Build();<br>&gt;<br>&gt;  <br>&gt;<br>&gt;   vtkSmartPointer&lt;vtkImageMapToColors&gt; color1 = vtkSmartPointer&lt;vtkImageMapToColors&gt;::New();<br>
&gt;<br>&gt;   color1-&gt;SetLookupTable(table1);<br>&gt;<br>&gt;   color1-&gt;SetInput(Original-&gt;GetOutput());//original image<br>&gt;<br>&gt; color1-&gt;Update();<br>&gt;<br>&gt;  <br>&gt;<br>&gt;   vtkSmartPointer&lt;vtkLookupTable&gt; table2 = vtkSmartPointer&lt;vtkLookupTable&gt;::New();<br>
&gt;<br>&gt;   table2-&gt;SetRange(0, 255);<br>&gt;<br>&gt;   table2-&gt;SetValueRange(0,1);<br>&gt;<br>&gt;   table2-&gt;SetSaturationRange(0.0, 0.0);<br>&gt;<br>&gt;   table2-&gt;SetRampToLinear();<br>&gt;<br>&gt;   table2-&gt;Build();<br>
&gt;<br>&gt;  <br>&gt;<br>&gt;   vtkSmartPointer&lt;vtkImageMapToColors&gt; color2 = vtkSmartPointer&lt;vtkImageMapToColors&gt;::New();<br>&gt;<br>&gt;   color2-&gt;SetLookupTable(table2);<br>&gt;<br>&gt;   color2-&gt;SetInput(Mask-&gt;GetOutput());//mask image<br>
&gt;<br>&gt;   color2-&gt;Update();<br>&gt;<br>&gt;  <br>&gt;<br>&gt;   vtkSmartPointer&lt;vtkImageBlend&gt; imgBlender =<br>&gt;<br>&gt;       vtkSmartPointer&lt;vtkImageBlend&gt;::New();<br>&gt;<br>&gt;   imgBlender-&gt;SetOpacity( 0, 1 );<br>
&gt;<br>&gt;   imgBlender-&gt;SetOpacity( 1, 0.3 );<br>&gt;<br>&gt;  <br>&gt;<br>&gt;   imgBlender-&gt;SetInput( 0, color1-&gt;GetOutput() );<br>&gt;<br>&gt;   imgBlender-&gt;SetInput( 1, color2-&gt;GetOutput() );<br>&gt;<br>
&gt;  <br>&gt;<br>&gt; vtkImageViewer2 *imageViewer1 = vtkImageViewer2::New();<br><br>Look at the SetTableValue calls in this example: <a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/Images/Transparency">http://www.vtk.org/Wiki/VTK/Examples/Cxx/Images/Transparency</a> <br>
<br><div>Also, by using ImageBlend you remove the option (which I always allow) to toggle the mask visibility (well, I suppose you could toggle between the original image and the blended image, but why not just turn on/off the mask?)<br>
<br></div><div>David</div>