<div>Hi,</div>
<div>I am tring to read a Dicom RT file (unsign int pixel type) and convert it to mhd file.</div>
<div>The Dicom file is a muti fram format with &quot;Grid Frame Offset Vector tag: (3004,000C)&quot;. I used gdcm (1.2) to read the size, spacing, and origin, and pixel data. Then comvert the pixel format into MetaImage.</div>

<div>The line of &quot;  unsigned int *imageData = fh-&gt;GetImageDataRaw(); &quot;  output the error message: <span style="FONT-FAMILY: &#39;Courier New&#39;; mso-no-proof: yes"><font size="3"><font size="2">&#39;initializing&#39; : cannot convert from &#39;uint8_t *&#39; to &#39;unsigned short *&#39;</font>.</font></span></div>

<div>The line of &quot;  itk::ImageRegionIterator&lt; ImageType &gt; it(im, <font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes"> </span>im-&gt;GetLargestPossibleRegion()); &quot; returned : <font size="2">cannot convert from &#39;unsigned short *&#39; to &#39;const unsigned int .</font></font></font></div>

<div><font face="Times New Roman" size="3">Can anyone give me an idea how to resolve the error?</font></div>
<div><font face="Times New Roman" size="3">Thanks a lot.</font></div>
<div><font face="Times New Roman" size="3">Howard</font></div>
<div><font face="Times New Roman" size="3"></font> </div>
<div>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &quot;itkImageFileReader.h&quot;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &quot;itkImageFileWriter.h&quot;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &quot;gdcmFileHelper.h&quot;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &quot;gdcmFile.h&quot;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &lt;itkImage.h&gt;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &lt;itkMetaImageIO.h&gt;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &lt;itkImageRegionIterator.h&gt;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">#include &lt;stdio.h&gt;<span style="mso-spacerun: yes">  </span>//sscanf</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">int main( int argc, char* argv[] )</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman">{</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>if( argc &lt; 2 )</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>{</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>std::cerr &lt;&lt; &quot;Usage: &quot; &lt;&lt; std::endl;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>std::cerr &lt;&lt; argv[0] &lt;&lt; &quot; DicomImage OutputDicomImage &quot;;</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>//std::cerr &lt;&lt; &quot; OutputImage RescaleDicomImage\n&quot;;</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>return EXIT_FAILURE;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>}</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>typedef unsigned int InputPixelType;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>const unsigned int<span style="mso-spacerun: yes">   </span>InputDimension = 3;</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>typedef itk::Image&lt; InputPixelType, InputDimension &gt; InputImageType;</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>typedef itk::ImageFileReader&lt; InputImageType &gt; ReaderType;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>gdcm::File *f1 = new gdcm::File();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>f1-&gt;SetFileName( argv[1] );</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>f1-&gt;Load();<span style="mso-spacerun: yes">   </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>int linesNumber<span style="mso-spacerun: yes">   </span>= f1-&gt;GetYSize();</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>int rawsNumber<span style="mso-spacerun: yes">    </span>= f1-&gt;GetXSize();</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>int framesNumber<span style="mso-spacerun: yes">  </span>= f1-&gt;GetZSize();// defaulted to 1 if not found</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 2">                        </span><span style="mso-spacerun: yes"> </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>float xs = f1-&gt;GetXSpacing();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>float ys = f1-&gt;GetYSpacing();<span style="mso-spacerun: yes">   </span></font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>float zs = f1-&gt;GetZSpacing();// defaulted to 1.0 if not found strSpacing (0x3004,0x000c)</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes"> </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>const std::string strSpacing = f1-&gt;GetEntryValue(0x3004,0x000c); </font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>const int MaxZ = 256;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">     </span>float sp[MaxZ] ;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span><span style="mso-spacerun: yes">   </span>if ( strSpacing != gdcm::GDCM_UNFOUND )</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 2">                        </span>{</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 3">                                    </span>if ( sscanf( strSpacing.c_str(), &quot;%f \\ %f &quot;, &amp;sp[0], &amp;sp[1]) &gt; 0 )</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 3">                                    </span>zs = sp[1]-sp[0];</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 2">                        </span>}</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>float xo = f1-&gt;GetXOrigin();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>float yo = f1-&gt;GetYOrigin();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">   </span>float zo = f1-&gt;GetZOrigin();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span><span style="mso-spacerun: yes"> </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>gdcm::FileHelper *fh = new gdcm::FileHelper();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>unsigned int *imageData = fh-&gt;GetImageDataRaw();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span>typedef itk::Image&lt;unsigned int, 3&gt; ImageType;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>ImageType::SizeType imSize = {{linesNumber, rawsNumber, framesNumber}};</font></font></p>

<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>ImageType::Pointer im = ImageType::New();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>im-&gt;SetRegions(imSize);</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>im-&gt;Allocate();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>// Set some values in the image</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>itk::ImageRegionIterator&lt; ImageType &gt; it(im, </font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">        </span>im-&gt;GetLargestPossibleRegion());</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>it.GoToBegin();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>while(imageData)</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>{</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>it.Set(imageData );</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>++it;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>}</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>typedef itk::ImageFileWriter&lt; ImageType &gt; VolumeWriterType;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>VolumeWriterType::Pointer writer = VolumeWriterType::New();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>itk::MetaImageIO::Pointer metaWriter = itk::MetaImageIO::New();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>writer-&gt;SetImageIO( metaWriter );</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>writer-&gt;SetFileName( &quot;test.mhd&quot; );</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3"> </font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>writer-&gt;SetInput( im );</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>writer-&gt;Update();</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>delete f1; </font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>delete fh; </font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-tab-count: 1">            </span></font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font size="3"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>return EXIT_SUCCESS;</font></font></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><font face="Times New Roman" size="3">}</font></p></div>