<div>Since my first try to send this message was bounced back. I have to resend it again and remove the DICOM image due to restricted bytes in the message. </div>
<div>&nbsp;</div>
<div>If you are interested in solving this problem, please let me know your e-mail address, and I will send the DICOM image immediately.</div>
<div>&nbsp;</div>
<div>Thank you again.</div>
<div>Sam<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Xuejun</b> &lt;<a href="mailto:sd2usa@gmail.com">sd2usa@gmail.com</a>&gt;<br>Date: Aug 28, 2006 12:51 AM
<br>Subject: Help on DICOM image reading bug<br>To: <a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br>Cc: <a href="mailto:sd2usa@gmail.com">sd2usa@gmail.com</a><br><br>&nbsp;</span></div>
<div>
<div lang="EN-US" vlink="purple" link="blue">
<div>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Dear all ITK users and developers;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I am encountering a problem in reading DICOM image and I am attaching the image asking for your help and advice.</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Since the pixel type of the DICOM image is "14U", I modified the file itkGDCMImageIO.cxx accordingly and recompiled and generated the ITK library. After getting the bufferpointer using GetBufferPointer, it was found that about half of the image data were lost, and the image display using OpenGL indicates obviously that upper part of the image is blank. I tested the code using a TIFF image whose dimension is larger than that of the DICOM image, it works very well. That leads to me doubt about if there is a bug in GDCMImageIO for reading such DICOM image or something wrong with my code. The following is the major part of the code:
</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Fixedsys" color="blue" size="2"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Fixedsys">typedef</span></font><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">
 <font color="blue"><span style="COLOR: blue">unsigned</span></font> <font color="blue"><span style="COLOR: blue">short</span></font> InputPixelType;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">const</span></font> <font color="blue"><span style="COLOR: blue">unsigned</span></font>
 <font color="blue"><span style="COLOR: blue">int</span></font>&nbsp;&nbsp; InputDimension = 2;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">typedef</span></font> itk::Image&lt; InputPixelType, InputDimension &gt; InputImageType;
</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">typedef</span></font> itk::ImageFileReader&lt; InputImageType &gt; ReaderType;</span>
</font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">typedef</span></font> InputImageType::SizeType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SizeType;</span></font></p>

<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReaderType::Pointer reader = ReaderType::New();</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName( </span></font><font size="2"><span style="FONT-SIZE: 10pt">"</span></font><font face="Fixedsys" size="2">
<span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">Slice_38.dcm</span></font><font size="2"><span style="FONT-SIZE: 10pt">"</span></font><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">
 );</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">//&nbsp;&nbsp;&nbsp;&nbsp; DICOM image IO type&nbsp; </span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">typedef</span></font> itk::GDCMImageIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DicomImageIOType;</span></font></p>

<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DicomImageIOType::Pointer gdcmImageIO = DicomImageIOType::New();</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;SetImageIO( gdcmImageIO );</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">//&nbsp;&nbsp;&nbsp;&nbsp; END DICOM image IO type</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">// TIFF image IO type</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">//&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::TIFFImageIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TiffImageIOType;</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">//&nbsp;&nbsp;&nbsp;&nbsp; TiffImageIOType::Pointer TiffImageIO = TiffImageIOType::New();</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">//&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;SetImageIO( TiffImageIO );</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">// END TIFF image IO type</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">try</span></font></span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp; {</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader-&gt;Update();</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp; }</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">catch</span></font> (itk::ExceptionObject &amp; err)</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp; {</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">
std::cerr &lt;&lt; &quot;exception in file reader &quot; &lt;&lt; std::endl;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cerr &lt;&lt; err &lt;&lt; std::endl;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="blue"><span style="COLOR: blue">return</span></font> ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp; }</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputImageType::Pointer image = reader-&gt;GetOutput() ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputPixelType *pointer = image-&gt;GetBufferPointer() ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long lWidth = image-&gt;GetBufferedRegion().GetSize()[0] ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long lHeight = image-&gt;GetBufferedRegion().GetSize()[1] ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" color="green" size="2"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Fixedsys">// Display the image by OpenGL</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">glClearColor(0.0, 0.0, 0.0, 0.0);</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glShadeModel(GL_FLAT);</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glPixelStorei(GL_UNPACK_ALIGNMENT, 1);</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glClear(GL_COLOR_BUFFER_BIT);</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glRasterPos2i(0, 0); </span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glDrawPixels(lWidth, lHeight, GL_LUMINANCE, GL_UNSIGNED_SHORT, pointer ) ;</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glPixelZoom(0.2, 0.2);</span></font></p>
<p><font face="Fixedsys" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Fixedsys">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The DICOM image can be displayed normally using DICOM image display software.</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Your kind help and any advice are greatly appreciated. </span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Best regards,</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Sam</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p></div></div></div><br clear="all">