<div dir="ltr"><div>I also tried VTK3.20 and got the same good results.<br><br><br></div><div>You could try one of these:<br><a href="http://placid.nlm.nih.gov/community/21">http://placid.nlm.nih.gov/community/21</a><br><br>
</div><div>If your data is anonymized, perhaps you can send me a link or just a few slices.<br><br></div><div>Bill<br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 12, 2013 at 2:45 PM, Constantine Z <span dir="ltr">&lt;<a href="mailto:mnkz@leeds.ac.uk" target="_blank">mnkz@leeds.ac.uk</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks. Yes, I can see it all looks completely legit.<br>
<br>
Perhaps I can send you my data? MR from a Philips scanner. Or maybe on Win it might work differently?<br>
<br>
Regards,<br>
Constartine<div class="im"><br>
<br>
On 12/08/2013 7:38 p.m., Bill Lorensen wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
I just tried your code on two different dicom datasets, a ct and an mr.<br>
<br>
Both worked for me.<br>
./DICOMTest ~/Data/itkTestcases/Back\ to\ Front/ .<br>
ITK Version: 4.5<br>
Stats for file: /home/lorensen/Data/<u></u>itkTestcases/Back to<br>
Front//i24389.MRDC.34<br>
Min: 0, Max: 293, Mean: 28.7654, Sigma: 37.2513, Variance: 1387.66, Sum:<br>
1.88517e+06<br>
Stats for file: ./file00.dcm<br>
Min: 0, Max: 293, Mean: 28.7654, Sigma: 37.2513, Variance: 1387.66, Sum:<br>
1.88517e+06<br>
[build] ./DICOMTest ~/Data/NAV/CT/ ./<br>
ITK Version: 4.5<br>
Stats for file: /home/lorensen/Data/NAV/CT//<u></u>ct.1<br>
Min: -1024, Max: 31744, Mean: 6277.24, Sigma: 13249.9, Variance:<br>
1.75559e+08, Sum: 1.64554e+09<br>
Stats for file: .//file00.dcm<br>
Min: -1024, Max: 31744, Mean: 6277.24, Sigma: 13249.9, Variance:<br>
1.75559e+08, Sum: 1.64554e+09<br>
<br>
<br>
<br>
<br>
On Mon, Aug 12, 2013 at 11:46 AM, Constantine Zakkaroff<br></div><div class="im">
&lt;<a href="mailto:mnkz@leeds.ac.uk" target="_blank">mnkz@leeds.ac.uk</a> &lt;mailto:<a href="mailto:mnkz@leeds.ac.uk" target="_blank">mnkz@leeds.ac.uk</a>&gt;&gt; wrote:<br>
<br>
    Hi Brad,<br>
<br>
    Yes, here&#39;s the minimal code:<br>
<br></div>
    ******************************<u></u>__****************************<u></u>**__************<div class="im"><br>
    #include &lt;cstdlib&gt;<br>
    #include &lt;itkImage.h&gt;<br>
    #include &lt;itkMetaImageIO.h&gt;<br>
    #include &lt;itkGDCMImageIO.h&gt;<br>
    #include &lt;itkGDCMSeriesFileNames.h&gt;<br>
    #include &lt;itkImageFileReader.h&gt;<br>
    #include &lt;itkImageFileWriter.h&gt;<br>
    #include &lt;itkStatisticsImageFilter.h&gt;<br>
<br>
    int main(int argc, char *argv[])<br>
    {<br>
             std::clog &lt;&lt; &quot;ITK Version: &quot; &lt;&lt; ITK_VERSION_STRING &lt;&lt;<br>
    std::endl;<br>
<br>
             typedef itk::GDCMSeriesFileNames NamesGeneratorType;<br>
             typedef itk::Image&lt;short, 3&gt; ImageType;<br>
<br>
             NamesGeneratorType::Pointer namesGenerator =<br>
    NamesGeneratorType::New();<br></div>
             namesGenerator-&gt;__<u></u>SetUseSeriesDetails(true);<br>
             namesGenerator-&gt;__<u></u>SetInputDirectory(argv[1]);<br>
<br>
             typedef itk::StatisticsImageFilter&lt;__<u></u>ImageType&gt;<br>
    StatsFilterType;<br>
             typedef itk::ImageFileReader&lt;__<u></u>ImageType&gt; ImageReaderType;<br>
             typedef itk::ImageFileWriter&lt;__<u></u>ImageType&gt; ImageWriterType;<div class="im"><br>
<br>
             ImageReaderType::Pointer imageReader0 = ImageReaderType::New();<br></div>
             imageReader0-&gt;SetImageIO(itk::<u></u>__GDCMImageIO::New());<div class="im"><br>
             StatsFilterType::Pointer statsFilter0 = StatsFilterType::New();<br>
<br></div>
    imageReader0-&gt;SetFileName(__<u></u>namesGenerator-&gt;__<u></u>GetInputFileNames()[0]);<br>
             statsFilter0-&gt;SetInput(__<u></u>imageReader0-&gt;GetOutput());<div class="im"><br>
             statsFilter0-&gt;Update();<br>
<br>
             std::clog &lt;&lt; &quot;Stats for file: &quot; &lt;&lt;<br></div>
    namesGenerator-&gt;__<u></u>GetInputFileNames()[0] &lt;&lt; std::endl;<div class="im"><br>
             std::clog &lt;&lt;<br>
                     &quot;Min: &quot; &lt;&lt; statsFilter0-&gt;GetMinimum() &lt;&lt; &quot;, &quot;<br>
                     &quot;Max: &quot; &lt;&lt; statsFilter0-&gt;GetMaximum() &lt;&lt; &quot;, &quot;<br>
                     &quot;Mean: &quot; &lt;&lt; statsFilter0-&gt;GetMean() &lt;&lt; &quot;, &quot;<br>
                     &quot;Sigma: &quot; &lt;&lt; statsFilter0-&gt;GetSigma() &lt;&lt; &quot;, &quot;<br>
                     &quot;Variance: &quot; &lt;&lt; statsFilter0-&gt;GetVariance() &lt;&lt; &quot;, &quot;<br>
                     &quot;Sum: &quot; &lt;&lt; statsFilter0-&gt;GetSum()<br>
                     &lt;&lt; std::endl;<br>
<br>
             ImageWriterType::Pointer imageWriter0 = ImageWriterType::New();<br></div>
             imageWriter0-&gt;SetInput(__<u></u>imageReader0-&gt;GetOutput());<br>
             imageWriter0-&gt;SetImageIO(itk::<u></u>__GDCMImageIO::New());<div class="im"><br>
             std::string fileName0 = std::string(argv[2]) + &quot;/file00.dcm&quot;;<br></div>
             imageWriter0-&gt;SetFileName(__<u></u>fileName0);<div class="im"><br>
             imageWriter0-&gt;Update();<br>
<br>
             ImageReaderType::Pointer imageReader1 = ImageReaderType::New();<br></div>
             imageReader1-&gt;SetImageIO(itk::<u></u>__GDCMImageIO::New());<div class="im"><br>
             StatsFilterType::Pointer statsFilter1 = StatsFilterType::New();<br></div>
             imageReader1-&gt;SetFileName(__<u></u>fileName0);<br>
             statsFilter1-&gt;SetInput(__<u></u>imageReader1-&gt;GetOutput());<div class="im"><br>
             statsFilter1-&gt;Update();<br>
<br>
             std::clog &lt;&lt; &quot;Stats for file: &quot; &lt;&lt; fileName0 &lt;&lt; std::endl;<br>
             std::clog &lt;&lt;<br>
                     &quot;Min: &quot; &lt;&lt; statsFilter1-&gt;GetMinimum() &lt;&lt; &quot;, &quot;<br>
                     &quot;Max: &quot; &lt;&lt; statsFilter1-&gt;GetMaximum() &lt;&lt; &quot;, &quot;<br>
                     &quot;Mean: &quot; &lt;&lt; statsFilter1-&gt;GetMean() &lt;&lt; &quot;, &quot;<br>
                     &quot;Sigma: &quot; &lt;&lt; statsFilter1-&gt;GetSigma() &lt;&lt; &quot;, &quot;<br>
                     &quot;Variance: &quot; &lt;&lt; statsFilter1-&gt;GetVariance() &lt;&lt; &quot;, &quot;<br>
                     &quot;Sum: &quot; &lt;&lt; statsFilter1-&gt;GetSum()<br>
                     &lt;&lt; std::endl;<br>
<br>
             system(&quot;pause&quot;);<br>
<br>
             return EXIT_SUCCESS;<br>
    }<br></div>
    ******************************<u></u>__****************************<u></u>**__************<div class="im"><br>
<br>
    Many thanks,<br>
    Constantine<br>
<br>
<br>
    On 12/08/2013 14:48, Bradley Lowekamp wrote:<br>
<br>
<br>
        Do you have the code to share so that it can be easily reproduced?<br>
<br>
<br>
        Thanks,<br>
        Brad<br>
<br>
        On Aug 12, 2013, at 9:33 AM, Constantine Zakkaroff<br></div><div class="im">
        &lt;<a href="mailto:mnkz@leeds.ac.uk" target="_blank">mnkz@leeds.ac.uk</a> &lt;mailto:<a href="mailto:mnkz@leeds.ac.uk" target="_blank">mnkz@leeds.ac.uk</a>&gt;&gt; wrote:<br>
<br>
            Hello ALL,<br>
<br>
            I&#39;m wondering if anyone can explain what&#39;s going on with the<br>
            changing image intensities in a read-write-read round-trip.<br>
            I think it&#39;s a bug, but the <a href="http://issues.itk.org" target="_blank">issues.itk.org</a><br></div>
            &lt;<a href="http://issues.itk.org" target="_blank">http://issues.itk.org</a>&gt; is unresponsive at the moment.<div><div class="h5"><br>
            Another bug? ;)<br>
<br>
            Anyhow, the strange thing is that the results for the round<br>
            trip read-write-read test are very different for ITK 3.20<br>
            and ITK 4.4.1.<br>
<br>
            I use to StatisticsImageFilter to examine the intensity<br>
            values. Here&#39;s what happens, when I simply read a DICOM<br>
            image, print stats, save the image and read it again,<br>
            followed by printing the stats:<br>
<br>
            ITK Version: 3.20<br>
            Stats for original file:<br>
            Min: 0, Max: 2474, Mean: 169.236, Sigma: 256.719, Variance:<br>
            65904.7, Sum: 1.40371e+007<br>
            Stats for saved file:<br>
            Min: 0, Max: 2471, Mean: 167.132, Sigma: 256.125, Variance:<br>
            65600.1, Sum: 1.38626e+007<br>
<br>
            ITK Version: 4.4<br>
            Stats for original file:<br>
            Min: 0, Max: 2474, Mean: 169.236, Sigma: 256.719, Variance:<br>
            65904.7, Sum: 1.40371e+007<br>
            Stats for saved file:<br>
            Min: 0, Max: 7446, Mean: 509.114, Sigma: 772.59, Variance:<br>
            596895, Sum: 4.22279e+007<br>
<br>
            In both cases the code is identical. Just compiled against<br>
            different versions of ITK. The images are read and written<br>
            as itk::Image&lt;unsigned short, 3&gt;, with no processing, no<br>
            changes to any aspect of the images.<br>
<br>
            So, ITK 3.20 introduces a small change, which I&#39;m pretty<br>
            sure shouldn&#39;t be there. But in ITK 4.4.1 the scale of<br>
            intensities changes three-fold.<br>
<br>
            I&#39;d not be surprised by a change of this magnitude if I was<br>
            photocopying those images, but not when using digital<br>
            software and hardware. :^) Is there something I&#39;m not<br>
            understanding here?<br>
<br>
            None of this happens with<br></div></div>
            read(DICOM)-write(MHD)-read(__<u></u>MHD), where the original and<div class="im"><br>
            round-trip values are identical:<br>
            Stats for saved file: file0.mhd<br>
            Min: 0, Max: 2474, Mean: 169.236, Sigma: 256.719, Variance:<br>
            65904.7, Sum: 1.40371e+007<br>
<br>
            Many thanks,<br>
            Constantine<br>
<br></div>
            ______________________________<u></u>_________<div class="im"><br>
            Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> &lt;<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>&gt;<br>
<br></div><div class="im">
            Visit other Kitware open-source projects at<br></div>
            <a href="http://www.kitware.com/__opensource/opensource.html" target="_blank">http://www.kitware.com/__<u></u>opensource/opensource.html</a><div class="im"><br>
            &lt;<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a>&gt;<br>
<br>
            Kitware offers ITK Training Courses, for more information visit:<br></div>
            <a href="http://www.kitware.com/__products/protraining.php" target="_blank">http://www.kitware.com/__<u></u>products/protraining.php</a><div class="im"><br>
            &lt;<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/<u></u>products/protraining.php</a>&gt;<br>
<br>
            Please keep messages on-topic and check the ITK FAQ at:<br></div>
            <a href="http://www.itk.org/Wiki/ITK___FAQ" target="_blank">http://www.itk.org/Wiki/ITK___<u></u>FAQ</a><div class="im"><br>
            &lt;<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_<u></u>FAQ</a>&gt;<br>
<br>
            Follow this link to subscribe/unsubscribe:<br></div>
            <a href="http://www.itk.org/mailman/__listinfo/insight-users" target="_blank">http://www.itk.org/mailman/__<u></u>listinfo/insight-users</a><br>
            &lt;<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/<u></u>listinfo/insight-users</a>&gt;<br>
<br>
<br>
    ______________________________<u></u>_________<div class="im"><br>
    Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> &lt;<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>&gt;<br>
<br></div><div class="im">
    Visit other Kitware open-source projects at<br></div>
    <a href="http://www.kitware.com/__opensource/opensource.html" target="_blank">http://www.kitware.com/__<u></u>opensource/opensource.html</a><div class="im"><br>
    &lt;<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a>&gt;<br>
<br>
    Kitware offers ITK Training Courses, for more information visit:<br></div>
    <a href="http://www.kitware.com/__products/protraining.php" target="_blank">http://www.kitware.com/__<u></u>products/protraining.php</a><div class="im"><br>
    &lt;<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/<u></u>products/protraining.php</a>&gt;<br>
<br>
    Please keep messages on-topic and check the ITK FAQ at:<br></div>
    <a href="http://www.itk.org/Wiki/ITK___FAQ" target="_blank">http://www.itk.org/Wiki/ITK___<u></u>FAQ</a> &lt;<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_<u></u>FAQ</a>&gt;<div class="im">
<br>
<br>
    Follow this link to subscribe/unsubscribe:<br></div>
    <a href="http://www.itk.org/mailman/__listinfo/insight-users" target="_blank">http://www.itk.org/mailman/__<u></u>listinfo/insight-users</a><div class="im"><br>
    &lt;<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/<u></u>listinfo/insight-users</a>&gt;<br>
<br>
<br>
<br>
<br>
--<br>
Unpaid intern in BillsBasement at noware dot com<br>
</div></blockquote>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>Unpaid intern in BillsBasement at noware dot com<br>
</div>