HI,
<div>I want to add a scalar value to RGB values of a .vtk file.(Here I have written VHP abdomen data(.mhd) set in .vtk format using ITK andVTK and it is working properly). My next attempt is to add a scalar to RGB values of the .vtk file and use imageIterator to sweep data.For that I have used VTK Examples CXX</div>
<div><br></div><div>VTK/Examples/CXX/Broken/IO/ImageReader2</div><div><br></div><div>VTK/Examples/CXX/ImageData/IterateImage Data</div><div><br></div><div><br></div><div><font color="#ff0000">My codes are as follows</font></div>
<div><div><br></div><div>#include &lt;vtkSmartPointer.h&gt;</div><div>#include &lt;vtkImageReader2.h&gt;</div><div>#include &lt;vtkImageData.h&gt;</div><div>#include &lt;vtkRenderWindow.h&gt;</div><div>#include &lt;vtkRenderWindowInteractor.h&gt;</div>
<div>#include &lt;vtkInteractorStyleImage.h&gt;</div><div>#include &lt;vtkRenderer.h&gt;</div><div>#include &lt;vtkImageActor.h&gt;</div><div>#include &lt;vtkVersion.h&gt;</div><div>#include &lt;vtkSmartPointer.h&gt;</div>
<div>#include &lt;vtkImageData.h&gt;</div><div><br></div><div>int main(int argc, char *argv[])</div><div>{</div><div>  // Verify command line arguments</div><div>  /*if(argc &lt; 2)</div><div>    {</div><div>    std::cout &lt;&lt; &quot;Usage: &quot; &lt;&lt; argv[0]</div>
<div>              &lt;&lt; &quot; InputFilename&quot; &lt;&lt; std::endl;</div><div>    return EXIT_FAILURE;</div><div>    }*/ </div><div>  // Parse command line arguments</div><div>  //std::string inputFilename =(&quot;D:\\rgbabdomen\\Debug\\output.vtk&quot;);</div>
<div> </div><div>  // Read file</div><div>  vtkSmartPointer&lt;vtkImageReader2&gt; reader =</div><div>    vtkSmartPointer&lt;vtkImageReader2&gt;::New();</div><div>  reader-&gt;SetFileName((&quot;D:\\rgbabdomen\\Debug\\output.vtk&quot;));</div>
<div>  reader-&gt;SetDataScalarTypeToUnsignedChar();</div><div>  reader-&gt;Update();</div><div> </div><div>//int main(int, char *[])</div><div><br></div><div>  // Create an image data</div><div>  vtkSmartPointer&lt;vtkImageData&gt; imageData = </div>
<div>    vtkSmartPointer&lt;vtkImageData&gt;::New();</div><div> </div><div>  imageData-&gt;reader(GetOutput);</div><div>  </div><div> </div><div><br></div><div>  </div><div>  // Specify the size of the image data</div><div>
  imageData-&gt;SetDimensions(675,401,450);</div><div>#if VTK_MAJOR_VERSION &lt;= 5</div><div>  imageData-&gt;SetNumberOfScalarComponents(GetNumberOfScalars+1);</div><div>  imageData-&gt;SetScalarTypeToInt();</div><div><br>
</div><div><br></div><div>#else</div><div>  imageData-&gt;AllocateScalars(VTK_DOUBLE,1);</div><div>#endif</div><div> </div><div>  int* dims = imageData-&gt;GetDimensions();</div><div>  // int dims[3]; // can&#39;t do this</div>
<div> </div><div>  std::cout &lt;&lt; &quot;Dims: &quot; &lt;&lt; &quot; x: &quot; &lt;&lt; dims[0] &lt;&lt; &quot; y: &quot; &lt;&lt; dims[1] &lt;&lt; &quot; z: &quot; &lt;&lt; dims[2] &lt;&lt; std::endl;</div><div> </div>
<div>  //std::cout &lt;&lt; &quot;Number of points: &quot; &lt;&lt; imageData-&gt;GetNumberOfPoints() &lt;&lt; std::endl;</div><div>  std::cout &lt;&lt; &quot;Number of cells: &quot; &lt;&lt; imageData-&gt;GetNumberOfCells() &lt;&lt; std::endl;</div>
<div> </div><div>  // Fill every entry of the image data with &quot;3.0&quot;</div><div>  for (int z = 0; z &lt; dims[2]; z++)</div><div>    {</div><div>    for (int y = 0; y &lt; dims[1]; y++)</div><div>      {</div><div>
      for (int x = 0; x &lt; dims[0]; x++)</div><div>        {</div><div>        double* pixel = static_cast&lt;double*&gt;(imageData-&gt;GetScalarPointer(x,y,z));</div><div>        pixel[0] = 3.0;</div><div>        }</div>
<div>      }</div><div>    }</div><div> </div><div>  // Retrieve the entries from the image data and print them to the screen</div><div>  for (int z = 0; z &lt; dims[2]; z++)</div><div>    {</div><div>    for (int y = 0; y &lt; dims[1]; y++)</div>
<div>      {</div><div>      for (int x = 0; x &lt; dims[0]; x++)</div><div>        {</div><div>        double* pixel = static_cast&lt;double*&gt;(imageData-&gt;GetScalarPointer(x,y,z));</div><div>        // do something with v</div>
<div>        std::cout &lt;&lt; pixel[0] &lt;&lt; &quot; &quot;;</div><div>        }</div><div>      std::cout &lt;&lt; std::endl;</div><div>      }</div><div>    std::cout &lt;&lt; std::endl;</div><div>    }</div><div> </div>
<div>  // Access the data linearly</div><div>  /*</div><div>    vtkSmartPointer&lt;vtkImageData&gt; image =</div><div>    vtkSmartPointer&lt;vtkImageData&gt;::New();</div><div>  image-&gt;SetExtent(0,1,0,1,0,0);</div><div>
  image-&gt;SetScalarTypeToInt();</div><div>  image-&gt;SetNumberOfScalarComponents(1);</div><div> </div><div>  int* pixel;</div><div> </div><div>  pixel = static_cast&lt;int*&gt;(image-&gt;GetScalarPointer(0,0,0));</div>
<div>  pixel[0] = 1;</div><div> </div><div>  pixel = static_cast&lt;int*&gt;(image-&gt;GetScalarPointer(1,0,0));</div><div>  pixel[0] = 2;</div><div> </div><div>  pixel = static_cast&lt;int*&gt;(image-&gt;GetScalarPointer(0,1,0));</div>
<div>  pixel[0] = 3;</div><div> </div><div>  pixel = static_cast&lt;int*&gt;(image-&gt;GetScalarPointer(1,1,0));</div><div>  pixel[0] = 4;</div><div> </div><div>  vtkIntArray* scalars = vtkIntArray::SafeDownCast(image-&gt;GetPointData()-&gt;GetArray(&quot;ImageScalars&quot;));</div>
<div>  std::cout &lt;&lt; &quot;Scalars has &quot; &lt;&lt; scalars-&gt;GetNumberOfComponents() &lt;&lt; &quot; components&quot; &lt;&lt; std::endl;</div><div>  std::cout &lt;&lt; &quot;Scalars has &quot; &lt;&lt; scalars-&gt;GetNumberOfTuples() &lt;&lt; &quot; tuples&quot; &lt;&lt; std::endl;</div>
<div> </div><div>  for(vtkIdType i = 0; i &lt; scalars-&gt;GetNumberOfTuples(); i++)</div><div>    {</div><div>    std::cout &lt;&lt; scalars-&gt;GetValue(i) &lt;&lt; std::endl;</div><div>    }</div><div>  */</div><div>  return EXIT_SUCCESS;</div>
<div>}</div><div>  </div><div>  </div><div>  </div><div>  /*</div><div>// Create an actor</div><div>  vtkSmartPointer&lt;vtkImageActor&gt; actor =</div><div>    vtkSmartPointer&lt;vtkImageActor&gt;::New();</div><div>  actor-&gt;SetInput(reader-&gt;GetOutput());</div>
<div> </div><div>  // Setup renderer</div><div>  vtkSmartPointer&lt;vtkRenderer&gt; renderer =</div><div>    vtkSmartPointer&lt;vtkRenderer&gt;::New();</div><div>  renderer-&gt;AddActor(actor);</div><div>  renderer-&gt;ResetCamera();</div>
<div> </div><div>  // Setup render window</div><div>  vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow =</div><div>    vtkSmartPointer&lt;vtkRenderWindow&gt;::New();</div><div>  renderWindow-&gt;AddRenderer(renderer);</div>
<div> </div><div>  // Setup render window interactor</div><div>  vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; renderWindowInteractor =</div><div>    vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();</div><div>  vtkSmartPointer&lt;vtkInteractorStyleImage&gt; style =</div>
<div>    vtkSmartPointer&lt;vtkInteractorStyleImage&gt;::New();</div><div> </div><div>  renderWindowInteractor-&gt;SetInteractorStyle(style);</div><div> </div><div>  // Render and start interaction</div><div>  renderWindowInteractor-&gt;SetRenderWindow(renderWindow);</div>
<div>  renderWindowInteractor-&gt;Initialize();</div><div> </div><div>  renderWindowInteractor-&gt;Start();</div><div> </div><div>  return EXIT_SUCCESS;</div><div>}*/</div></div><div><br></div><div><font color="#ff0000">There are three errors</font></div>
<div><div style="color:rgb(255,0,0)">1&gt;------ Build started: Project: ImageReader2, Configuration: Debug Win32 ------</div><div style="color:rgb(255,0,0)">1&gt;Compiling...</div><div style="color:rgb(255,0,0)">1&gt;imagereader.cxx</div>
<div style="color:rgb(255,0,0)">1&gt;.\imagereader.cxx(40) : error C2039: &#39;reader&#39; : is not a member of &#39;vtkImageData&#39;</div><div style="color:rgb(255,0,0)">1&gt;        D:\research2\vtk-5.10.0\VTK\Filtering\vtkImageData.h(35) : see declaration of &#39;vtkImageData&#39;</div>
<div style="color:rgb(255,0,0)">1&gt;.\imagereader.cxx(40) : error C2065: &#39;GetOutput&#39; : undeclared identifier</div><div style="color:rgb(255,0,0)">1&gt;.\imagereader.cxx(48) : error C2065: &#39;GetNumberOfScalars&#39; : undeclared identifier</div>
<div style="color:rgb(255,0,0)">1&gt;Build log was saved at &quot;file://d:\dup2\ImageReader2.dir\Debug\BuildLog.htm&quot;</div><div style="color:rgb(255,0,0)">1&gt;ImageReader2 - 3 error(s), 0 warning(s)</div><div style="color:rgb(255,0,0)">
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========</div><div style="color:rgb(255,0,0)"><br></div><div><font color="#ffffff">C</font>Can you please go through my codes and show me the correct way of doing it.I am waiting for  a quick reply from you.</div>
</div><div><br></div><div>regards</div><div>Shirani</div>