<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Verdana><FONT size=2>Hi all ,</FONT></FONT></DIV>
<DIV><FONT face=Verdana size=2>I have questions about transferring 3D&nbsp;model 
from vtk to itk.</FONT></DIV>
<DIV><FONT face=Verdana size=2>In fact,I want to draw a tube in vtk, and then 
transfer it into itk,thus I can use raycasting to project it into an image.But 
the first step does not work,which means I cannot transfer the tube I draw into 
itk.Can anybody help me?Thanks a lot!!!</FONT></DIV>
<DIV><FONT face=Verdana size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>Vivian</FONT></DIV>
<DIV><FONT face=Verdana size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana><FONT size=2>Here are my code:</FONT></FONT></DIV>
<DIV><FONT face=Verdana><FONT size=2></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana><FONT size=2>&nbsp;&nbsp;&nbsp; 
//--------------------VTK pipeline-----------------------</FONT></DIV>
<DIV><FONT size=2>vtkLineSource* line3D = 
vtkLineSource::New();<BR>&nbsp;line3D-&gt;SetPoint1(0,0,0);<BR>&nbsp;line3D-&gt;SetPoint2(100,100,100);&nbsp;<BR>&nbsp;line3D-&gt;Update();</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;vtkTubeFilter* LineTube = 
vtkTubeFilter::New();<BR>&nbsp;LineTube-&gt;SetInput(line3D-&gt;GetOutput());<BR>&nbsp;LineTube-&gt;SetNumberOfSides(8);<BR>&nbsp;LineTube-&gt;SetRadius(2);</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>vtkImageData* image = 
vtkImageData::New();<BR>&nbsp;image-&gt;SetOrigin(0,0,0);<BR>&nbsp;image-&gt;SetSpacing(0.2,0.2,0.2);<BR>&nbsp;image-&gt;SetDimensions(50,50,50);<BR>&nbsp;image-&gt;SetScalarTypeToUnsignedChar();//double 
to unsighned 
Char<BR>&nbsp;image-&gt;AllocateScalars();<BR>&nbsp;image-&gt;Update();<BR>&nbsp;for 
(int n=0; n&lt;image-&gt;GetNumberOfPoints(); 
n++){<BR>&nbsp;&nbsp;image-&gt;GetPointData()-&gt;GetScalars()-&gt;SetTuple1(n, 
127);<BR>&nbsp;}</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;vtkPolyDataToImageStencil * dataToStencil = 
vtkPolyDataToImageStencil::New();&nbsp;</FONT></DIV>
<DIV><FONT 
size=2>&nbsp;dataToStencil-&gt;SetInput(LineTube-&gt;GetOutput());</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;vtkImageStencil* stencil = 
vtkImageStencil::New();<BR>&nbsp;stencil-&gt;SetInput(image);<BR>&nbsp;stencil-&gt;SetStencil(dataToStencil-&gt;GetOutput());<BR>&nbsp;stencil-&gt;ReverseStencilOff();<BR>&nbsp;stencil-&gt;SetBackgroundValue(0);&nbsp;<BR>&nbsp;stencil-&gt;Update();</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>// 
----------------VTK-ITK-------------------------</FONT></DIV>
<DIV><FONT size=2>vtkImageExport* vtkExporter = 
vtkImageExport::New();<BR>&nbsp;vtkExporter -&gt;SetInput (lum-&gt; 
GetOutput());</FONT></DIV>
<DIV><FONT size=2><BR>&nbsp;typedef itk::Image&lt;unsigned char, 3&gt; 
ImageType;<BR>&nbsp;typedef itk::VTKImageImport&lt;ImageType&gt; 
ImageImportType;&nbsp;<BR>&nbsp;ImageImportType::Pointer itkImporter = 
ImageImportType::New();&nbsp;</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;ConnectPipelines(vtkExporter, itkImporter);&nbsp; //it's 
code comes&nbsp;from connectPipelines in VTKUtility.h&nbsp; 
in&nbsp;</FONT></DIV>
<DIV><FONT 
size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
// insightApplication</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp; //--------------------ITK 
pipeline-----------------------<BR>&nbsp;typedef 
itk::RescaleIntensityImageFilter&lt; ImageType, ImageType &gt; 
rescalefilterType;<BR>&nbsp;rescalefilterType::Pointer itkrescaler = 
rescalefilterType::New();&nbsp;<BR>&nbsp;itkrescaler-&gt;SetInput(itkImporter-&gt;GetOutput());<BR>&nbsp;itkrescaler-&gt;SetOutputMinimum(0);<BR>&nbsp;itkrescaler-&gt;SetOutputMaximum(65535);</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV>&nbsp;<FONT size=2>typedef itk::ImageFileWriter&lt; ImageType &gt; 
WriterType;<BR>&nbsp;WriterType::Pointer writer = 
WriterType::New();</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;typedef itk::VTKImageIO&nbsp;&nbsp;&nbsp; 
ImageIOType;<BR>&nbsp;ImageIOType::Pointer vtkIO = 
ImageIOType::New();</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT 
size=2>&nbsp;writer-&gt;SetFileName(".\tubelineOutput.vtk");<BR>&nbsp;writer-&gt;SetInput(itkrescaler-&gt;GetOutput());&nbsp; 
</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT 
size=2>&nbsp;vtkIO-&gt;SetFileTypeToASCII();<BR>&nbsp;writer-&gt;SetImageIO( 
vtkIO );</FONT></DIV><FONT size=2>
<DIV><BR>&nbsp;&nbsp;writer-&gt;Update();</DIV>
<DIV>&nbsp;</DIV>
<DIV>...<BR></DIV></FONT>
<DIV align=left><FONT size=2>
<HR style="WIDTH: 122px; HEIGHT: 2px" SIZE=2>
</FONT></DIV>
<DIV><FONT color=#c0c0c0><FONT size=2>fyy5581</FONT></DIV>
<DIV><FONT size=2>2006-09-12</FONT></FONT></DIV></FONT></BODY></HTML>