<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7232.77">
<TITLE>In / out</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hello,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Terribly sorry. I have read the UG and looked over the tutorials concerning reading and writing to a buffer. My code compiles and runs &#8230;. but does nothing. To troubleshoot, I have implemented as fast and naïve threshold filter. Could someone please look this over and tell me what I am doing wrong? </FONT></P>

<P><FONT SIZE=2 FACE="Arial">Regards,</FONT>

<BR><FONT SIZE=2 FACE="Arial">Dan</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">void myfunction::helloWorldFilter(float *fdata, int xdim, int ydim, int zdim,</FONT>

<BR><FONT SIZE=2 FACE="Arial">&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; int numiter, QApplication *app)</FONT>

<BR><FONT SIZE=2 FACE="Arial">{</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">//&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">// ***********************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Preliminaries to read the array into an ITK Image class *</FONT>

<BR><FONT SIZE=2 FACE="Arial">// ***********************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; typedef float PixelType;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; const unsigned int Dimension = 3;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; typedef itk::Image&lt; PixelType, Dimension &gt; ImageType;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; typedef itk::ImportImageFilter&lt; PixelType, Dimension &gt;&nbsp;&nbsp; ImportFilterType;&nbsp;&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; ImportFilterType::Pointer importer = ImportFilterType::New();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; ImportFilterType::SizeType&nbsp; size;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; size[0]&nbsp; = xdim;&nbsp; // size along X</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; size[1]&nbsp; = ydim;&nbsp; // size along Y</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; size[2]&nbsp; = zdim;&nbsp; // size along Z</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">&nbsp; ImportFilterType::IndexType start;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; start[0]=0;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; start[1]=0;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; start[2]=0;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">&nbsp; ImportFilterType::RegionType region;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; region.SetIndex( start );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; region.SetSize(&nbsp; size&nbsp; );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; importer-&gt;SetRegion( region );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; double origin[ Dimension ];</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; origin[0] = 0.0;&nbsp;&nbsp;&nbsp; // X coordinate </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; origin[1] = 0.0;&nbsp;&nbsp;&nbsp; // Y coordinate</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; origin[2] = 0.0;&nbsp;&nbsp;&nbsp; // Z coordinate</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; importer-&gt;SetOrigin( origin );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; double spacing[ Dimension ];</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; spacing[0] = 1.0;&nbsp;&nbsp;&nbsp; // along X direction </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; spacing[1] = 1.0;&nbsp;&nbsp;&nbsp; // along Y direction</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; spacing[2] = 1.0;&nbsp;&nbsp;&nbsp; // along Z direction</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; importer-&gt;SetSpacing( spacing );</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">&nbsp; const bool importFilterWillDeleteTheInputBuffer = false;</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; PixelType * pixeldata = static_cast&lt; PixelType * &gt;( fdata );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; const unsigned int numberOfPixels =&nbsp; size[0] * size[1] * size[2];</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; </FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; importer-&gt;SetImportPointer( pixeldata, numberOfPixels, </FONT>

<BR><FONT SIZE=2 FACE="Arial">&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; importFilterWillDeleteTheInputBuffer );</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; importer-&gt;Update();</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">// ****************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End preliminaries&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; *</FONT>

<BR><FONT SIZE=2 FACE="Arial">// ****************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//</FONT>

<BR><FONT SIZE=2 FACE="Arial">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; THRESHOLDING EXAMPLE</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">typedef itk::ThresholdImageFilter&lt; ImageType &gt;&nbsp; FilterType;</FONT>

<BR><FONT SIZE=2 FACE="Arial">FilterType::Pointer filter = FilterType::New();</FONT>

<BR><FONT SIZE=2 FACE="Arial">filter-&gt;SetInput( importer-&gt;GetOutput() );</FONT>

<BR><FONT SIZE=2 FACE="Arial">filter-&gt;ThresholdBelow( 180 );</FONT>

<BR><FONT SIZE=2 FACE="Arial">filter-&gt;Update();</FONT>

<BR><FONT SIZE=2 FACE="Arial">//</FONT>

<BR><FONT SIZE=2 FACE="Arial">// **************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//&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; End Filter&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; *</FONT>

<BR><FONT SIZE=2 FACE="Arial">// **************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//</FONT>

<BR><FONT SIZE=2 FACE="Arial">// **************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">//&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; Write back to array&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *</FONT>

<BR><FONT SIZE=2 FACE="Arial">// **************************************************************</FONT>

<BR><FONT SIZE=2 FACE="Arial">ImageType::PixelContainer * container;</FONT>

<BR><FONT SIZE=2 FACE="Arial">container = filter-&gt;GetOutput()-&gt;GetPixelContainer();</FONT>

<BR><FONT SIZE=2 FACE="Arial">container-&gt;SetContainerManageMemory( false );</FONT>

<BR><FONT SIZE=2 FACE="Arial">fdata = container-&gt;GetImportPointer();</FONT>

<BR><FONT SIZE=2 FACE="Arial">// </FONT>

<BR><FONT SIZE=2 FACE="Arial">//</FONT>

<BR><FONT SIZE=2 FACE="Arial">}</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Arial">Best Regards,</FONT>

<BR><FONT SIZE=2 FACE="Arial">Dan</FONT>

<BR><FONT FACE="Times New Roman">Daniel R Einstein, PhD<BR>
Biological Monitoring and Modeling<BR>
Pacific Northwest National Laboratory<BR>
P.O. Box 999; MSIN P7-59<BR>
Richland, WA 99352<BR>
Tel: 509/ 376-2924<BR>
Fax: 509/376-9064<BR>
</FONT><A HREF="mailto:daniel.einstein@pnl.gov"><U><FONT COLOR="#0000FF" FACE="Times New Roman">daniel.einstein@pnl.gov</FONT></U></A>
</P>
<BR>

</BODY>
</HTML>