[Insight-users] SpatialObjectToImageFilter or TriangleMeshToBinaryImageFilter?

Julien Jomier julien.jomier at kitware.com
Mon Sep 11 09:28:54 EDT 2006


Tim, Chris,

The SpatialObjectToImageFilter is meant to be a very generic filter and 
therefore is not very optimal to rasterize large meshes. Also, this 
filter reports 1 only inside the cells and not inside a closed mesh.

The TriangleMeshToBinaryImageFilter or even a connection through VTK 
will be faster.

Julien

Chris McIntosh wrote:
> Hi Tim,
>  
>  From my understanding the SpatialObjectToImageFilter is designed
> to report 1 on the surface of the mesh and zero elsewhere as you
> describe. This is based on my examination of the IsInside()
> member function.
>  
> One option is to overwrite that function, and the other is to
> use the TriangleMeshToBinaryImageFilter. Personally,
> I've found the TriangleMeshToBinaryImageFilter to be quite
> fast and straghtforward to use.
>  
> I've done both options in 
> http://www.sfu.ca/~cmcintos/IDO/doxygen/html/_geom___mesh_spatial_object_8cxx-source.html 
> <http://www.sfu.ca/~cmcintos/IDO/doxygen/html/_geom___mesh_spatial_object_8cxx-source.html>.
>  
> ---------------------
> Geom_MeshSpatialObject< dType, nDims, MType, VType > 
> <http://www.sfu.ca/~cmcintos/IDO/doxygen/html/classmial_1_1_geom___mesh_spatial_object.html> 
> ::generateBinaryImageFromTopology 
> <http://www.sfu.ca/~cmcintos/IDO/doxygen/html/classmial_1_1_geom___mesh_spatial_object.html>( 
> typename 
> Geom_MeshSpatialObject<dType,nDims,MType,VType>::BinaryImageType::SizeType 
> <http://www.sfu.ca/~cmcintos/IDO/doxygen/html/classmial_1_1_geom___mesh_spatial_object.html> 
> size)
>  
> This function uses the TriangleMeshToBinaryImageFilter. Ignore the 
> commented code, it was there to make use of
> my attempt at writting a IsInside function. I've pasted whats relevant 
> at the bottom of this e-mail.
>  
> --------
> void Geom_MeshSpatialObject< dType, nDims, MType, VType 
>  >::generateTopologyFromBinaryImage( BinaryImageTypePointer 
> binaryInputImage )
>  
> This function shows how to go the other way (incase your interested).
> ---------------
> 
> I hope this helps.
>  
> -Chris
>  
> 
> 00350                 typename BinaryImageType::Pointer image = 
> BinaryImageType::New();
> 00351
> 00352                 typedef itk::TriangleMeshToBinaryImageFilter< 
> MeshType, BinaryImageType > meshToImageFilterType; 00353                 
> typename meshToImageFilterType::Pointer meshToImageFilter = 
> meshToImageFilterType::New();
> 00354                
> 00361
> 00362                 meshToImageFilter->SetSize( size );
> 00363
> 00364                 meshToImageFilter->SetInput( 
> theMeshSpatialObject->GetMesh() );
> 00365                 image = meshToImageFilter->GetOutput();
> 00366                 meshToImageFilter->Update();
> 
> 
>  
> On 9/10/06, *advanced math* <advanced.math at gmail.com 
> <mailto:advanced.math at gmail.com>> wrote:
> 
>     Dear all,
> 
>     I want to do Rasterization of a mesh to get a binary image. Seems
>     there 2 classes could be used, SpatialObjectToImageFilter and
>     TriangleMeshToBinaryImageFilter. Which one should I use? Which is
>     faster?
> 
>     I've tried the SpatialObjectToImageFilter, but got very strange result.
>     First, instead of a image inside mesh set to "1", outside the mesh set
>     to "0", I got an image set to "1" on the surface of mesh, but "0" to
>     the other part of the image.
> 
>     second, The class documentation indicates that by default, if the user
>     does not specify the size of the output image, the size of the
>     object's bounding box is used. However, what I got is an image much
>     larger than the bounding box of the mesh object.
> 
>     Thanks,
>     Tim Lee
>     _______________________________________________
>     Insight-users mailing list
>     Insight-users at itk.org <mailto:Insight-users at itk.org>
>     http://www.itk.org/mailman/listinfo/insight-users
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list