<p dir="ltr">Well, it would be nice to preserve the ability for a user to explicitly set the slope-intercept tags for output images (not that I can think of a particularly compelling use case of why they&#39;d want to do so).</p>

<div class="gmail_quote">On Dec 6, 2013 1:10 PM, &quot;Bill Lorensen&quot; &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Or we could just set the slope intersect to identity in the tags in<br>
the GDCMImageIO.<br>
<br>
<br>
On Fri, Dec 6, 2013 at 12:41 PM, Brian Helba &lt;<a href="mailto:brian.helba@kitware.com">brian.helba@kitware.com</a>&gt; wrote:<br>
&gt; I&#39;ve been looking into this whole category of GDCM issues. I&#39;m preparing<br>
&gt; some more thorough bug reports for Jira, mostly related to the physical<br>
&gt; coordinate properties.<br>
&gt;<br>
&gt; I&#39;ve also looked at the rescale issue, and it seems like the simple hack may<br>
&gt; actually be the best solution without some complicated new functionality in<br>
&gt; GDCM: if the slope-intercept tags are set for an image, just apply the<br>
&gt; inverse of the rescaling function to the image values right before sending<br>
&gt; them to GDCM. I&#39;ll try to get a patch with a good test together in the next<br>
&gt; few days, before the next RC.<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Dec 4, 2013 at 1:52 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I probably will not get to this before the release.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Dec 4, 2013 at 12:12 PM, Yi-Yu Chou &lt;<a href="mailto:yiyu.chou@gmail.com">yiyu.chou@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi Bill,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It appears the bug &quot;Acquisition Matrix&quot; is still not corrected when<br>
&gt;&gt; &gt; running<br>
&gt;&gt; &gt; with itk4.5_rc02.<br>
&gt;&gt; &gt; Are you going to fix it in the new released itk ?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Many thanks !!<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Yi-Yu<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Oct 18, 2013 at 8:24 PM, Constantine Zakkaroff<br>
&gt;&gt; &gt; &lt;<a href="mailto:mnkz@leeds.ac.uk">mnkz@leeds.ac.uk</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi Bill,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; It appears the bug with slope and intercept being processed incorrectly<br>
&gt;&gt; &gt;&gt; still shows up in ITK 4.4.2.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Is there an explanation why in the original DICOM file rescale slope is<br>
&gt;&gt; &gt;&gt; 7.1, but in order to see the same image stats (min, max, etc.) it needs<br>
&gt;&gt; &gt;&gt; to<br>
&gt;&gt; &gt;&gt; be saved with the rescale slope value of 1.0?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Also, I believe I mentioned it a while ago, but there wasn&#39;t much<br>
&gt;&gt; &gt;&gt; feedback<br>
&gt;&gt; &gt;&gt; on this: some tag values get unexpected values. For example, compare<br>
&gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; following tag values in the original DICOM file:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; (0010,21C0) Pregnancy Status VR: US Length: 2 Value: 4<br>
&gt;&gt; &gt;&gt; (0018,0088) Spacing Between Slices VR: DS Length: 4 Value: 17.0<br>
&gt;&gt; &gt;&gt; (0018,1310) Acquisition Matrix VR: US Length: 8 Value: 0 144 144 0<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; and saved file:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; (0010,21C0) Pregnancy Status VR: US Length: 2 Value: 52<br>
&gt;&gt; &gt;&gt; (0018,0088) Spacing Between Slices VR: DS Length: 2 Value: 1<br>
&gt;&gt; &gt;&gt; (0018,1310) Acquisition Matrix VR: US Length: 12 Value: 23600 13361<br>
&gt;&gt; &gt;&gt; 23604<br>
&gt;&gt; &gt;&gt; 13361 23604 48<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; As suggested earlier, I use the same GDCMImageIO object for reading and<br>
&gt;&gt; &gt;&gt; writing.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Many thanks,<br>
&gt;&gt; &gt;&gt; Constantine<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 16/08/2013 19:13, Bill Lorensen wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Constantine,<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; You found a bug in itk&#39;s dicom IO. I&#39;ll report it and prepare a patch<br>
&gt;&gt; &gt;&gt;&gt; to<br>
&gt;&gt; &gt;&gt;&gt; fix it for future users.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; As a workaround, which should work for ITK 3 and ITK4 and hopefully<br>
&gt;&gt; &gt;&gt;&gt; after I fix the bug:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; 1) If you want to retain the input dicom entries, you should create a<br>
&gt;&gt; &gt;&gt;&gt; GDCMImageIO and use it for both the input and output.<br>
&gt;&gt; &gt;&gt;&gt; 2) To work around the itk dicom bug, add these lines AFTER the stats<br>
&gt;&gt; &gt;&gt;&gt; filter:<br>
&gt;&gt; &gt;&gt;&gt;    // Set rescale slope and intercept to 1 and 0<br>
&gt;&gt; &gt;&gt;&gt;    imageReader0-&gt;Update();<br>
&gt;&gt; &gt;&gt;&gt;    typedef itk::MetaDataDictionary   DictionaryType;<br>
&gt;&gt; &gt;&gt;&gt;    DictionaryType &amp; dict =<br>
&gt;&gt; &gt;&gt;&gt; imageReader0-&gt;GetOutput()-&gt;GetMetaDataDictionary();<br>
&gt;&gt; &gt;&gt;&gt;    itk::EncapsulateMetaData&lt;std::string&gt;( dict, &quot;0028|1052&quot;, &quot;0.0&quot;);<br>
&gt;&gt; &gt;&gt;&gt;    itk::EncapsulateMetaData&lt;std::string&gt;( dict, &quot;0028|1053&quot;, &quot;1.0&quot;);<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; NOTE: You need to #include &quot;itkMetaDataObject.h&quot;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; I&#39;ve attached the your program with all of these changes. Thanks for<br>
&gt;&gt; &gt;&gt;&gt; your patience,<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Bill<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; _____________________________________<br>
&gt;&gt; &gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt; &gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt; &gt;&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt; &gt;&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; &gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt; _____________________________________<br>
&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;<br>
&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;<br>
&gt;&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt;<br>
&gt;&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;<br>
&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Community mailing list<br>
&gt;&gt; <a href="mailto:Community@itk.org">Community@itk.org</a><br>
&gt;&gt; <a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Brian Helba<br>
&gt; Medical Imaging<br>
&gt; Kitware, Inc.<br>
<br>
<br>
<br>
--<br>
Unpaid intern in BillsBasement at noware dot com<br>
</blockquote></div>