<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>

<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7226.0">
<TITLE>Re: [Insight-users] Median: different result on different machines</TITLE>
</HEAD>
<BODY>
<DIV id=idOWAReplyText65746 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Luis:</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Thanks for thinking about 
this </FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>A Screenshot is now&nbsp;at :</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><A 
href="http://www.geocities.com/robertcarlatwood/">http://www.geocities.com/robertcarlatwood/</A></DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>I originally tried attaching it (but it is'nt allowed on the list I 
found out... )</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Both are ccmake configured as Release.I put the cmake cache on the 
web site too.</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Of course, the compilers are different as they are differeint Linux 
distributions. Also the minor release is different, but I have no idea what 
backpatches each distribution has incorporated; I note that Red-hat's extra 
version number is 39 implying quite a few changes from the base 3-2-3 </DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Yes, Machine 2 is '64 bits' or 'em64t'&nbsp;&nbsp;according to 
Intel (I don't&nbsp;think it is&nbsp;'true' 64 bit like Itanium.. similar to 
AMD64, but Intel)</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>Machine 1 is 32 bits, ordinary&nbsp;Intel &nbsp;Xeon from 2 years 
ago.</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr>-- Robert</DIV>
<DIV dir=ltr>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>Compiler details: </FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>machine 1:&gt; &nbsp;gcc 
--version<BR>gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-39)<BR>Copyright (C) 
2002 Free Software Foundation, Inc.<BR>This is free software; see the source for 
copying conditions.&nbsp; There is NO<BR>warranty; not even for MERCHANTABILITY 
or FITNESS FOR A PARTICULAR PURPOSE.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>machine 2</FONT><FONT face=Arial 
color=#000000 size=2>:~&gt; gcc --version<BR>gcc (GCC) 3.3.3 (SuSE 
Linux)<BR>Copyright (C) 2003 Free Software Foundation, Inc.<BR>This is free 
software; see the source for copying conditions.&nbsp; There is NO<BR>warranty; 
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Luis Ibanez 
[mailto:luis.ibanez@kitware.com]<BR><B>Sent:</B> Tue 23/08/2005 
00:42<BR><B>To:</B> Atwood, Robert C<BR><B>Cc:</B> ITK Mailing 
List<BR><B>Subject:</B> Re: [Insight-users] Median: different result on 
different machines<BR></FONT><BR></DIV>
<DIV><BR>
<P><FONT size=2>Hi Robert<BR><BR>Are you using the same compilers ?<BR>same 
versions of GCC ?<BR><BR>Do you have the same compilation options in<BR>both 
machines ?<BR><BR>E.g. a typical explanation would be if<BR>one machine is 
building for Release and<BR>the other for Debug.<BR><BR>Since your images are of 
pixel type "float"<BR>they are prone to computation errors.<BR><BR><BR>Is&nbsp; 
your Machine 2, a 64-bits processor ?<BR>and your Machine 1, a 32-bits processor 
?<BR><BR><BR>Your description of speckly is a bit intriguing...<BR>could you 
post a screenshot of the images in question<BR>in a public web site from where 
we could take a look<BR>at it ?&nbsp; Hopefully together with the screenshot 
of<BR>the normal appearance ?<BR><BR><BR>Thanks<BR><BR><BR>&nbsp;&nbsp; 
Luis<BR><BR><BR><BR>-----------------------<BR>Atwood, Robert C 
wrote:<BR>&gt;&nbsp;<BR>&gt;<BR>&gt; 
------------------------------------------------------------------------<BR>&gt; 
*From:* Atwood, Robert C<BR>&gt; *Sent:* Thu 11/08/2005 19:06<BR>&gt; *To:* ITK 
Mailing List<BR>&gt; *Subject:* Median: different result on different 
machines<BR>&gt;<BR>&gt; Dear ITK list:<BR>&gt;&nbsp;<BR>&gt; I noticed 
different results on a new machine compared to the same code<BR>&gt; on the old 
machine, so I carefully removed all parts of my code until I<BR>&gt; had the 
minimum that exhibits the different results. It is 
basically<BR>&gt;&nbsp;<BR>&gt; ImageFileReader ---&gt; MedianImageFilter 
---&gt; ImageFileWriter<BR>&gt;&nbsp;<BR>&gt; Machine 1:&nbsp; Intel p4 2800 , 
RedHat enterprise WS-3 + online up2date, ITK<BR>&gt; from a few weeks ago 
cvs<BR>&gt;&nbsp;<BR>&gt; Machine 2 Intel p4 3400 with em64t (x86_64) SUSE 9.1 + 
online Y.O.U.<BR>&gt; updates , ITK from today (but first I tried with the same 
ITK source as<BR>&gt; Machine 1 with the same 
effect.<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt; On machine 1 the median result looks 
correct (here it is hard-coded<BR>&gt; radius 3 jsut to 
try)<BR>&gt;&nbsp;<BR>&gt; On machine 2 there is speckle noise that seems to 
appear as a result of<BR>&gt; the median.<BR>&gt;&nbsp;<BR>&gt; Running the test 
program that was compiled on machine 1, on machine 2,<BR>&gt; does not give the 
speckles. I got rid of my slice print output routine<BR>&gt; in case that was 
causing it, and used an independant volume viewer to<BR>&gt; look at the volume, 
it is definintely speckly!<BR>&gt;&nbsp;<BR>&gt; I hope this is a simple 
problem&nbsp; that someone already knows the answer<BR>&gt; for , and can share 
it with me. Otherwise, I can provide any additional<BR>&gt; details that will be 
useful to diagnose the problem. It would be nice if<BR>&gt; it worked on the new 
machine because it is considerably faster.<BR>&gt;&nbsp;<BR>&gt; Thanks<BR>&gt; 
Robert<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt; (here's the 
code)<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt; #include &lt;stdio.h&gt;<BR>&gt; 
#include &lt;string.h&gt;<BR>&gt; #include &lt;malloc.h&gt;<BR>&gt; #include 
"itkImage.h"<BR>&gt; #include "itkImageFileWriter.h"<BR>&gt; #include 
"itkImageFileReader.h"<BR>&gt; #include 
"itkMedianImageFilter.h"<BR>&gt;&nbsp;&nbsp; typedef float 
PixelType;<BR>&gt;&nbsp;&nbsp; typedef itk::Image&lt; PixelType, 3 &gt; 
ScalarImageType;<BR>&gt;&nbsp;&nbsp; // definitions for writing the 
image<BR>&gt;&nbsp;&nbsp; typedef itk::ImageFileWriter&lt; ScalarImageType &gt; 
WriterType;<BR>&gt;&nbsp;&nbsp; typedef 
itk::ImageFileReader&lt;ScalarImageType&gt; ReaderType;<BR>&gt;&nbsp;&nbsp; 
//median filter<BR>&gt;&nbsp;&nbsp; typedef 
itk::MedianImageFilter&lt;ScalarImageType,ScalarImageType&gt; VolMedian;<BR>&gt; 
/*********************************/<BR>&gt; /* beginning of MAIN 
routine&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&gt; 
/*********************************/<BR>&gt; int main(int argc, char ** argv) 
{<BR>&gt;&nbsp;&nbsp; int med_rad=3;<BR>&gt;&nbsp;&nbsp; /* ITK objects needed 
for processing the volume&nbsp; */<BR>&gt;&nbsp;&nbsp; VolMedian::Pointer 
volmedian = VolMedian::New();<BR>&gt;&nbsp;&nbsp; ReaderType::Pointer reader = 
ReaderType::New();<BR>&gt;&nbsp;&nbsp; WriterType::Pointer writer = 
WriterType::New();<BR>&gt;&nbsp;&nbsp; ScalarImageType::SizeType 
vol_rad;<BR>&gt;&nbsp;&nbsp; if (argc != 
2){<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Little program to test 
itk median filter\n");<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("Usage: %s 
input.mhd\n",argv[0]);<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Only 
itk registered data file types to avoid 
extra\n");<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("import filter 
code.\n");<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Median radius 
fixed at %i\n",med_rad);<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return(0);<BR>&gt;&nbsp;&nbsp; }<BR>&gt;&nbsp;&nbsp; vol_rad[0] = 
med_rad;<BR>&gt;&nbsp;&nbsp; vol_rad[1] = med_rad;<BR>&gt;&nbsp;&nbsp; 
vol_rad[2] = med_rad;<BR>&gt;&nbsp;&nbsp; 
volmedian-&gt;SetRadius(vol_rad);<BR>&gt;&nbsp;&nbsp; printf("...3d Median ... 
itk radius %i ..\n",med_rad);<BR>&gt;&nbsp;&nbsp; 
volmedian-&gt;SetInput(reader-&gt;GetOutput());<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/* add the volume writer */<BR>&gt;&nbsp;&nbsp; 
writer-&gt;SetInput(volmedian-&gt;GetOutput());<BR>&gt;&nbsp;&nbsp; 
writer-&gt;SetFileName( "mediantest.mhd" );<BR>&gt;&nbsp;&nbsp; 
reader-&gt;SetFileName(argv[1]);<BR>&gt;&nbsp;&nbsp; try 
{<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer-&gt;Update();<BR>&gt;&nbsp;&nbsp; 
}catch( itk::ExceptionObject &amp; exp ) {<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
std::cerr &lt;&lt; "Exception caught 04 writer update !" &lt;&lt; 
std::endl;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; exp &lt;&lt; 
std::endl;<BR>&gt;&nbsp;&nbsp; }<BR>&gt;&nbsp;&nbsp; printf("All 
done\n");<BR>&gt;&nbsp;&nbsp; return (0);<BR>&gt; 
}<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt;<BR>&gt;<BR>&gt; 
------------------------------------------------------------------------<BR>&gt;<BR>&gt; 
_______________________________________________<BR>&gt; Insight-users mailing 
list<BR>&gt; Insight-users@itk.org<BR>&gt; <A 
href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR><BR></FONT></P></DIV>

</BODY>
</HTML>