<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1252">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.4417.0">
<TITLE>How to construct volume from series of bitmaps</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Courier New">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">I am trying to construct a 3d volume from a series of bitmaps (ct- slices) using the below code, but </FONT>

<BR><FONT SIZE=2 FACE="Courier New">the code crashes at &quot; w-&gt;Render();&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">Whether the following code flow is correct?</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">what should be the input for vtkVolumeRayCastMapper?</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">what are the parameters for SetDataExtent method? if you give the parameter description, it would be helpful.</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">Please help me......</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">#include &quot;vtkRenderer.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkRenderWindow.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkRenderWindowInteractor.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkVolume16Reader.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkPolyDataMapper.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkActor.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkOutlineFilter.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkCamera.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkProperty.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkPolyDataNormals.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkContourFilter.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkBMPReader.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkImageData.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkImageActor.H&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkVolumeMapper.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkVolumeRayCastMapper.h&quot;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#include &quot;vtkDataSetMapper.H&quot;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">void main()</FONT>

<BR><FONT SIZE=2 FACE="Courier New">{</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderWindow *w=vtkRenderWindow::New();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkBMPReader *r=vtkBMPReader::New();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">vtkVolumeRayCastMapper *vtm = vtkVolumeRayCastMapper::New();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">vtkRenderer *ren=vtkRenderer::New();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // vtkImageActor *a=vtkImageActor::New();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">vtkVolume *a = vtkVolume::New();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">vtkRenderWindowInteractor *i=vtkRenderWindowInteractor::New();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">//vtkVolume16Reader *v=vtkVolume16Reader::New();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //vtkDataSetMapper *m=vtkDataSetMapper::New();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i-&gt;SetRenderWindow(w);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r-&gt;SetFileDimensionality(2);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r-&gt;SetDataByteOrderToLittleEndian();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r-&gt;SetFilePrefix(&quot;new/Slice&quot;);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r-&gt;SetFilePattern(&quot;%s%d.bmp&quot;);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r-&gt;SetDataSpacing(3.0,2.0,3.0);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">//r-&gt;SetDataExtent(0, 63, 0, 63,0,2); // 2 slices</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">r-&gt;SetDataExtent(0, 255, 0, 255,0,2); // 2 slices</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; vtm-&gt;SetInput(r-&gt;GetOutput());</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">a-&gt;SetMapper(vtm);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp; w-&gt;AddRenderer(ren);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ren-&gt;AddActor(a);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w-&gt;Render();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i-&gt;Start();</FONT>

<BR><FONT SIZE=2 FACE="Courier New">}</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">regards</FONT>

<BR><FONT SIZE=2 FACE="Courier New">SoftUsers</FONT>
</P>
<BR>

<DIV>
<HR>  , <B></B> - .
<BR> <B></B>  <A HREF="http://www.burrotech.com/officemail"></A>.
</DIV></BODY>
</HTML>