<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
Hi All,<br><br>I am looking for a method to write text into a vtkImage or make a vtkImage with text in it. I have tried a couple of methods with no success. Below is what I have tried.<br><br>//////////////////<br>//2D polydata -&gt; 3D polyData -&gt; image data<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkVectorText&gt; textSource = vtkSmartPointer&lt;vtkVectorText&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textSource-&gt;SetText("Hello");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textSource-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkLinearExtrusionFilter&gt; linExtFilter = vtkSmartPointer&lt;vtkLinearExtrusionFilter&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; linExtFilter-&gt;SetCapping(1);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; linExtFilter-&gt;SetExtrusionTypeToNormalExtrusion();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; linExtFilter-&gt;SetScaleFactor(0.1);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; linExtFilter-&gt;SetInput(textSource-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; linExtFilter-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPolyDataToImageStencil&gt; polyToImageStencil = vtkSmartPointer&lt;vtkPolyDataToImageStencil&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; polyToImageStencil-&gt;SetInput(linExtFilter-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; polyToImageStencil-&gt;SetOutputWholeExtent(MTImage-&gt;GetExtent());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; polyToImageStencil-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageStencil&gt; imgStencil = vtkSmartPointer&lt;vtkImageStencil&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgStencil-&gt;SetInput(BlackImage);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgStencil-&gt;SetStencil(polyToImageStencil-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgStencil-&gt;ReverseStencilOff();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgStencil-&gt;SetBackgroundValue(255);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgStencil-&gt;Update();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPNGWriter&gt; textWriter = vtkSmartPointer&lt;vtkPNGWriter&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textWriter-&gt;SetFileName("textImage.png");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textWriter-&gt;SetInput(imgStencil-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textWriter-&gt;Write();<br>//////////////////////<br>//2D polydata -&gt; image<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkVectorText&gt; textSource = vtkSmartPointer&lt;vtkVectorText&gt;::New();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textSource-&gt;SetText("Hello");<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textSource-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkProbeFilter&gt; textFilter = vtkSmartPointer&lt;vtkProbeFilter&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textFilter-&gt;SetSource(textImage);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textFilter-&gt;SetInputConnection(textSource-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textFilter-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkImageCast&gt; textCast = vtkSmartPointer&lt;vtkImageCast&gt;::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textCast-&gt;SetOutputScalarTypeToUnsignedChar();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textCast-&gt;SetInput(textFilter-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; textCast-&gt;Update();<br>//////////////////////<br><br>Am I using these classes and filters correctly? Are there any methods that facilitate annotating images with text? Thank you in advance.<br><br>Regards,<br>Alexis Cheng<br>Electrical Engineering<br>University of British Columbia<br>                                               </div></body>
</html>