<!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 " w->Render();"</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 "vtkRenderer.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkRenderWindow.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkRenderWindowInteractor.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkVolume16Reader.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkPolyDataMapper.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkActor.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkOutlineFilter.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkCamera.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkProperty.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkPolyDataNormals.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkContourFilter.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkBMPReader.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkImageData.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkImageActor.H"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkVolumeMapper.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkVolumeRayCastMapper.h"</FONT>
<BR><FONT SIZE=2 FACE="Courier New">#include "vtkDataSetMapper.H"</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">void main()</FONT>
<BR><FONT SIZE=2 FACE="Courier New">{</FONT>
<BR>
<BR><FONT SIZE=2 FACE="Courier New"> vtkRenderWindow *w=vtkRenderWindow::New();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> vtkBMPReader *r=vtkBMPReader::New();</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">vtkVolumeRayCastMapper *vtm = vtkVolumeRayCastMapper::New();</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">vtkRenderer *ren=vtkRenderer::New();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> // vtkImageActor *a=vtkImageActor::New();</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">vtkVolume *a = vtkVolume::New();</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">vtkRenderWindowInteractor *i=vtkRenderWindowInteractor::New();</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">//vtkVolume16Reader *v=vtkVolume16Reader::New();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> //vtkDataSetMapper *m=vtkDataSetMapper::New();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> i->SetRenderWindow(w);</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> r->SetFileDimensionality(2);</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> r->SetDataByteOrderToLittleEndian();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> r->SetFilePrefix("new/Slice");</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> r->SetFilePattern("%s%d.bmp");</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> r->SetDataSpacing(3.0,2.0,3.0); </FONT>
<BR> <FONT SIZE=2 FACE="Courier New">//r->SetDataExtent(0, 63, 0, 63,0,2); // 2 slices</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">r->SetDataExtent(0, 255, 0, 255,0,2); // 2 slices</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> vtm->SetInput(r->GetOutput());</FONT>
<BR> <FONT SIZE=2 FACE="Courier New">a->SetMapper(vtm);</FONT>
<BR> <FONT SIZE=2 FACE="Courier New"> w->AddRenderer(ren);</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> ren->AddActor(a);</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> w->Render();</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> i->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>