<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'd want to do so).</p>

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