<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi all,<br>
</p>
<p><br>
</p>
<p>I met a very strange situation when I used ITK 4.8.1. I'd like to read a DICOM series, write it to a DICOM file (i.e. save the volume created by the DICOM series to a .dcm file), and read the DICOM file. Theoretically, the DICOM series and the DCM file should
 have the same information, e.g origin, spacing, size. However, My results show me that the information has been changed. When I use other ITK-support file format (e.g. nii, nrrd), the information has not been changed. It seems a bug. <span style="font-size: 12pt;">My
</span><span style="font-size: 12pt;">code and results</span><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;">are listed</span><span style="font-size: 12pt;"> as below. Has anyone met the same situation?</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">Regards,</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">Zhuangming Shen</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p>​<br>
</p>
<p>================   My code  =================<br>
</p>
<p><br>
</p>
<div>import itk</div>
<div><br>
</div>
<div>input_dir = "/home/zshen/workspace/Data/testDCM/bbb"</div>
<div>output_filename = "/home/zshen/workspace/Data/bbb2.dcm"</div>
<div><br>
</div>
<div># read DICOM series</div>
<div>dicom_io = itk.GDCMImageIO.New()</div>
<div><br>
</div>
<div>reader = itk.ImageSeriesReader[itk.Image.SS3].New()</div>
<div>reader.SetImageIO(dicom_io)</div>
<div><br>
</div>
<div>name_generator = itk.GDCMSeriesFileNames.New()</div>
<div>name_generator.SetUseSeriesDetails(True)</div>
<div>name_generator.SetDirectory(input_dir)</div>
<div><br>
</div>
<div>series_uid = name_generator.GetSeriesUIDs()</div>
<div><br>
</div>
<div>series_identifier = series_uid[0]</div>
<div><br>
</div>
<div>file_names = name_generator.GetFileNames(series_identifier)</div>
<div><br>
</div>
<div>reader.SetFileNames(file_names)</div>
<div>reader.Update()</div>
<div><br>
</div>
<div>print("****  series DICOM information: *****")</div>
<div>print("size: "+str(reader.GetOutput().GetLargestPossibleRegion().GetSize()))</div>
<div>print("origin: "+str(reader.GetOutput().GetOrigin()))</div>
<div>print("spacing: "+str(reader.GetOutput().GetSpacing()))</div>
<div><br>
</div>
<div>writer = itk.ImageFileWriter[itk.Image.SS3].New()<br>
</div>
<div>writer.SetInput(reader.GetOutput())</div>
<div>writer.SetFileName(output_filename)</div>
<div>writer.Update()</div>
<div><br>
</div>
<div># read again</div>
<div>reader2 = itk.ImageFileReader[itk.Image.SS3].New()</div>
<div>reader2.SetFileName(output_filename)</div>
<div>reader2.Update()</div>
<div><br>
</div>
<div>print("****  DICOM information: *****")</div>
<div>print("size: "+str(reader2.GetOutput().GetLargestPossibleRegion().GetSize()))</div>
<div>print("origin: "+str(reader2.GetOutput().GetOrigin()))</div>
<div>print("spacing: "+str(reader2.GetOutput().GetSpacing()))<br>
</div>
<p><br>
</p>
<p>=================  My results ====================<br>
</p>
<div>****  series DICOM information: *****</div>
<div>size: itkSize3 ([512, 512, 118])</div>
<div>origin: itkPointD3 ([-229.5, -96.5, -553])</div>
<div>spacing: itkVectorD3 ([0.896484, 0.896484, 3])</div>
<div>****  DICOM information: *****</div>
<div>size: itkSize3 ([512, 512, 118])</div>
<div>origin: itkPointD3 ([0, 0, 0])</div>
<div>spacing: itkVectorD3 ([0.896484, 0.896484, 1])</div>
<div><br>
</div>
<p><br>
</p>
<p><br>
</p>
</body>
</html>