[Insight-users] Re: Bug 1056

Mathieu Malaterre mathieu.malaterre at kitware.com
Wed Dec 15 10:34:45 EST 2004


Jim,

	From http://medical.nema.org/dicom/2004/04_06PU.PDF

Pixel spacing is:

...
(0028,0030) Pixel Spacing DS 2
...

So this is a string representing a floating point number (DS) with a 
value multiplicity of 2.

HTH
Mathieu

Miller, James V (Research) wrote:
> Luis, 
> 
> Should the representation for 0x0028,0x0030 be VR_SH instead of VR_FL?
> (short string instead of float)
> 
> If so, we could handle the tag like we do the ImagePositionPatient tag.
> Which may clean up the new code you added a little.
> 
> Jim
> 
> 
> -----Original Message-----
> From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
> Sent: Wednesday, December 15, 2004 8:35 AM
> To: UKoehler at dhzb.de
> Cc: Insight-users at itk.org
> Subject: [Insight-users] Re: Bug 1056
> 
> 
> 
> Hi Uwe,
> 
> Thanks for trying the changes and letting us know about the
> order of the spacing.
> 
> Following your indications we just committed a change to
> the CVS repository. The pixel spacing along X and Y should
> now be in the correct order.
> 
> Please give it a try and let us know if it is working fine now,
> this is one of those changes that may seem inocuous but
> actually can have quite dangerous consequences. (e.g. when
> the images are used for treatement planning).
> 
> 
>   Regards
> 
> 
>        Luis
> 
> 
> --------------------------
> Dr. Uwe Kohler wrote:
> 
> 
>>Dear Luis,
>>
>>many thanks for the quick help. I updated the DICOMAppHelper.cxx only in 
>>Version 1.8.1 and I do get different values for the pixel spacing in x- and
> 
> 
>>y-direction now. However, after a discussion with the manufacturer of the 
>>MR-Scanner (Bruker) and after checking the standard (my quote below is
> 
> taken 
> 
>>directly from the DICOM standard document), I am convinced it is
> 
> Row-spacing 
> 
>>(spacing in Y (PixelSpacing[1])) first. Nothing much about DICOM can
> 
> supprise 
> 
>>me anymore ...
>>
>>I was convinced of the opposite, like you, before talking to Bruker (and 
>>checking the standard ;-). Bruker also mentioned that almost nobody uses 
>>non-isotrope in-plane pixels. Well, we do and you are almost there.
>>
>>Many thanks again
>>
>>Uwe
>>
>>Am Dienstag, 14. Dezember 2004 23:58 schrieben Sie:
>> 
>>
>>
>>>Hi Uwe,
>>>
>>>Thanks a lot for your detailed message and for editing
>>>the bug in the database.
>>>
>>>Following your hints, we just added an extra step to the
>>>parsing in order to recover the second number in the
>>>tag 0028x0030.  We are now searching for the separator
>>>and taking the second part of the string.
>>>
>>>This has been committed to CVS so you can give it a try.
>>>
>>>We are still unclear regarding the order of the spacing.
>>>That is, whether the first value is suppossed to be the
>>>spacing in X (PixelSpacing[0]) or the spacing in Y
>>>(PixelSpacingg[1])
>>>
>>>
>>>If you have a chance, please give it a try at the CVS
>>>version and let us konw what you find.
>>>
>>>
>>>   Thanks
>>>
>>>
>>>
>>>      Luis
>>>
>>>
>>>
>>>
>>>-------------------------
>>>
>>>Dr. Uwe Kohler wrote:
>>>   
>>>
>>>
>>>>-----BEGIN PGP SIGNED MESSAGE-----
>>>>Hash: SHA1
>>>>
>>>>Dear Luis,
>>>>
>>>>I tried to post a comment to the bug, but the system forgot most of it:
>>>>
>>>>I have images with non-isotropic in-plane resolution and ITK cannot
>>>>interpret the pixel spacing. According to the DICOM standard you do get
>>>>the ROW spacing first and then the COL spacing.
>>>>
>>>>- From the standard:
>>>>Physical distance in the patient between the center of each pixel,
>>>>specified by a numeric pair - adjacent row spacing (delimiter) adjacent
>>>>column spacing in mm.
>>>>
>>>>I also seem to get rounding errors, however I can live with those. I just
>>>>cannot fix the DICOM code
>>>> if (len > 0)
>>>>   {
>>>>   fval = DICOMFile::ReturnAsFloat(val,
>>>>parser->GetDICOMFile()->GetPlatformIsBigEndian());
>>>>   }
>>>>
>>>> if (group == 0x0028 && element == 0x0030)
>>>>   {
>>>>   this->PixelSpacing[0] = this->PixelSpacing[1] = fval;
>>>>   }
>>>> else if (group == 0x0018 && element == 0x0050)
>>>>   {
>>>>   this->PixelSpacing[2] = fval;
>>>>   }
>>>>
>>>>since val should have more than one value. Could you fix that?
>>>>
>>>>Cheers
>>>>
>>>>Uwe
>>>>- --
>>>>     
>>>>
>>
>> 
>>
> 
> 
> 
> 
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 





More information about the Insight-users mailing list