[vtkusers] 3D TIFF -> STL
Gib Bogle
g.bogle at auckland.ac.nz
Wed Jan 4 04:18:28 EST 2012
I am wanting to generate a stereolithographic (STL) file from a 3D binary TIFF
file (containing only 0 and 255). I found a suggestion that the steps are as
follows:
1. In ITK, read TIFF and write VTK file
2. In VTK, read VTK file and create a surface mesh using vtkContourFilter
3. Save the mesh with vtkSTLWriter
I have created test.vtk from test.tif, by simply providing this filename to
itk::ImageFileWriter. Apparently since test.vtk contains image data, it should
be possible to read it with vtkImageReader (or vtkImageReader2). I've written
code to read test.vtk, run it through vtkContourFilter and write the result out
with vtkSTLWriter, but the resulting STL file contains no triangles. The
reason, I see, is that GetDataExtent() returns an array of 0s. Clearly the vtk
file is not being read correctly.
vtkSmartPointer<vtkImageReader2> reader =
vtkSmartPointer<vtkImageReader2>::New();
reader->SetFileName(inputFilename.c_str());
reader->Update();
int ext[6];
reader->GetDataExtent(ext);
printf("Data extent: %d %d %d %d %d
%d\n",ext[0],ext[1],ext[2],ext[3],ext[4],ext[5]);
I see from the FAQ that VTK can read a couple of different 3D VTK file formats,
VTK Structured Grid and VTK Poly Data. Clearly my test.vtk is neither of these
- it's an image file. I also see mention of "VTK legacy file format", which
makes me wonder if I'm trying to do something that is no longer supported.
I'm sure there is a simple explanation ...
Thanks
Gib
More information about the vtkusers
mailing list