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