<br clear="all"><div>Hello, </div><div><br></div><div>I am newbie to the world of ITK and VTK and my question is due to my ignorance. </div><div><br></div><div>I am reading a float image using ITK and want to visualize this float image using VTK. </div>

<div><br></div><div>I simulate this float image to have different values in it. E.g. one of the simulated images will have all of its values as 100.00 and other may have all of its values as 5.0. </div><div><br></div><div>

So when I bring up these two images using VTK I do not see any differences between them, I mean I would expect some changes in the color or intensity or something like that for me to say which image is which . </div><div>

<br></div><div>Purpose of this test tool later is going to be able able to read an actual float image (with different pixels having different intensity values) </div><div><br></div><div>Following is my code, could anyone please help me understand why do I just see black image despite having pixels with different float values. </div>

<div><br></div><div><br></div><div><div>#include&lt;iostream&gt;</div><div>#include&lt;fstream&gt;</div><div>#include &lt;string&gt;</div><div>#include &lt;cmath&gt;</div><div><br></div><div>#include &quot;itkImage.h&quot;</div>

<div>#include &quot;itkImagetoVTKImageFilter.h&quot;    </div><div>#include &quot;itkImportImageFilter.h&quot;  // convert an array into itkImage type </div><div>#include &quot;itkTileImageFilter.h&quot;</div><div><br></div>

<div><br></div><div>#include &lt;vtkImageDataGeometryFilter.h&gt;</div><div>#include &lt;vtkProperty.h&gt;</div><div>#include &lt;vtkSmartPointer.h&gt;</div><div>#include &lt;vtkPolyDataMapper.h&gt;</div><div>#include &lt;vtkImageMapper.h&gt;</div>

<div>#include &lt;vtkActor2D.h&gt;</div><div>#include &lt;vtkActor.h&gt;</div><div>#include &lt;vtkRenderWindow.h&gt;</div><div>#include &lt;vtkImageViewer.h&gt;</div><div>#include &lt;vtkRenderWindowInteractor.h&gt;</div>

<div>#include &lt;vtkRenderer.h&gt;</div><div><br></div><div>struct f32complex{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>float re,im; </div><div><br></div><div>};</div><div><br></div><div><br>

</div><div><br></div><div><br></div><div>int main(int argc, char* argv[])</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>// read binary file  readBinaryDataFromDisk(); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::string filename = &quot;complexImage.dat&quot; ; </div>

<div>         int length;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>f32complex * buffer;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::ifstream is;</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>is.open(filename.c_str()); </div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>// get length of file:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>is.seekg (0, std::ios::end);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>length = is.tellg();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>is.seekg (0, std::ios::beg);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>// allocate memory:</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>buffer = new f32complex [length];</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>// read data as a block:</div><div>

<span class="Apple-tab-span" style="white-space:pre">        </span>is.read ((char*)buffer,length);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>is.close();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>//assuming symmetry of data in both dimensions</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>float val1 = length/8;    // 4 + 4 bytes , float data type </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>int dim[2];</div><div><br>

</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>float dimension = sqrt(val1) ; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>dim[1]= dim[0] = dimension; </div><div><br></div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>// get real image </div><div>    float *realImage = new float[length] ; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>for (int i=0; i&lt;length; i++)</div>

<div><span class="Apple-tab-span" style="white-space:pre">                </span>realImage[i]= buffer[i].re; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>

<div><br></div><div>    // get imaginary part  getImaginaryImage(); </div><div>    float *imaginaryImage = new float[length] ; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>for (int i=0; i&lt;length; i++)</div>

<div><span class="Apple-tab-span" style="white-space:pre">                </span>imaginaryImage[i]= buffer[i].im; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div>    delete [] buffer; </div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>typedef itk::Image&lt; float, 2 &gt; ImageType;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>//typedef itk::ImageFileReader&lt;ImageType&gt; <span class="Apple-tab-span" style="white-space:pre">        </span>     ReaderType;</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>typedef itk::ImageToVTKImageFilter&lt;<span class="Apple-tab-span" style="white-space:pre">        </span>ImageType&gt;   FilterType;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>typedef itk::ImportImageFilter&lt; float, 2 &gt;   ImportFilterType;</div>

<div><br></div><div>   //  ReaderType::Pointer reader = ReaderType::New();</div><div>     //FilterType::Pointer connector = FilterType::New();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>ImportFilterType::Pointer importFilter = ImportFilterType::New();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>ImportFilterType::SizeType  size;</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>int totalNumofPixels = size[0]*size[1];</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>size[0]  = int (dim[0]);  // size along X</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>size[1]  = int (dim[1]) ;  // size along Y</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>importFilter -&gt; SetImportPointer(imaginaryImage, totalNumofPixels, true ); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>importFilter-&gt;Update(); </div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>FilterType::Pointer connector = FilterType:: New();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>connector-&gt;SetInput(importFilter-&gt;GetOutput()) ; </div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>vtkImageViewer * viewer = vtkImageViewer::New();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>vtkRenderWindowInteractor *renWinInt = vtkRenderWindowInteractor::New(); </div>

<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>viewer-&gt;SetupInteractor(renWinInt); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>viewer-&gt;SetInput(connector-&gt;GetOutput() ); </div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>viewer-&gt;Render(); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>viewer-&gt;SetColorWindow(255); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>viewer-&gt;SetColorLevel(128);  </div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>renWinInt-&gt;Start(); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>//viewer-&gt;Delete(); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>//renWin-&gt;Delete(); </div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>//renWinInt-&gt;Delete(); </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div></div><div><br></div><div><br></div><div><br></div>

<div>Thank you in advance</div><div><br></div><div>Ankit </div><div> </div>-- <br><br>From the withered tree, a <span>flower</span> blooms.<br>                                                         - Zen<br><br>