<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Re: [Insight-users] Median: different result on different machines</TITLE>

<META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=032595920-23082005><FONT face=Arial color=#0000ff 
size=2>Robert, </FONT></SPAN></DIV>
<DIV><SPAN class=032595920-23082005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=032595920-23082005><FONT face=Arial color=#0000ff size=2>Does 
one of these machines have more than one processor (or thinks it has more than 
one processor)?</FONT></SPAN></DIV>
<DIV><SPAN class=032595920-23082005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=032595920-23082005><FONT face=Arial color=#0000ff 
size=2>Jim</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> 
  insight-users-bounces+millerjv=crd.ge.com@itk.org 
  [mailto:insight-users-bounces+millerjv=crd.ge.com@itk.org]<B>On Behalf Of 
  </B>Atwood, Robert C<BR><B>Sent:</B> Tuesday, August 23, 2005 3:22 
  PM<BR><B>To:</B> Luis Ibanez<BR><B>Cc:</B> ITK Mailing List<BR><B>Subject:</B> 
  RE: [Insight-users] Median: different result on different 
  machines<BR><BR></FONT></DIV>
  <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></BLOCKQUOTE></BODY></HTML>