Thanks a lot,<br><br>It was exactly what I was looking!<br><br><div class="gmail_quote">2011/7/1 Vincent Garcia <span dir="ltr">&lt;<a href="mailto:vincent.garcia@inria.fr">vincent.garcia@inria.fr</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);">Hi John,<br><br>I&#39;d say that reading images in ITK is not the most intuitive way to do it if you care to keep the original type.<br>
So, what I do is the following.<br>I have written this function that reads only the header of the image :<br><br><font size="2"><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">-------------------------------------------------------------------------</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;">
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: rgb(0, 153, 0);">itk::ImageIOBase::Pointer<br>readImageInformation( std::string fileName )<br>{<br><br>    // Define image IO<br>    itk::ImageIOBase::Pointer imageIO  = itk::ImageIOFactory::CreateImageIO( fileName.c_str(), itk::ImageIOFactory::ReadMode );<br>
<br>    // Test if image exists<br>    if ( !imageIO )<br>        throw std::runtime_error( &quot;Could not read image &quot; + fileName + &quot;.&quot; );<br><br>    // Read image information<br>    try<br>    {<br>        imageIO-&gt;SetFileName( fileName );<br>
        imageIO-&gt;ReadImageInformation();<br>    }<br>    catch( itk::ExceptionObject&amp; )<br>    {<br>        throw std::runtime_error( &quot;Could not read image information.&quot; );<br>    }<br>    return imageIO;<br>
}</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"></span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;"><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">------------------------------------------------------------</span></font><br>
<br>The output of this function if an itk::ImageIOBase.<br>Then, you can figure out what is the type of your image by using theses function on the ImageIOBase pointer :<br><br>image_base-&gt;GetPixelType()<br>image_base-&gt;GetComponentType()<br>
<br>The first one tells you if your image is scalar, RGB, vector, etc. (see <a href="http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#abd189f096c2a1b3ea559bc3e4849f658" target="_blank">http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#abd189f096c2a1b3ea559bc3e4849f658</a>).<br>
The second one tells you the type of each component : short, int, double, etc. (see <a href="http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#a8dc783055a0af6f0a5a26cb080feb178" target="_blank">http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#a8dc783055a0af6f0a5a26cb080feb178</a>)<br>
<br>Like that, you can have everything you need to correctly read your image (dimension etc.).<br>Read the class, it&#39;s pretty clear.<br><br>Then, when you know the type of the input image, you use the correct ImageFileReader (I mean the correct templates).<br>
Basically, it will be a BIG switch... (thanks to templates)<br><br>Cheers,<br><br>Vincent Garcia<br><br><hr><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><b>From: </b>&quot;john smith&quot; &lt;<a href="mailto:mkitkinsightuser@gmail.com" target="_blank">mkitkinsightuser@gmail.com</a>&gt;<br>
<b>To: </b><a href="mailto:insight-users@itk.org" target="_blank">insight-users@itk.org</a><br><b>Sent: </b>Friday, 1 July, 2011 11:39:07 AM<br><b>Subject: </b>[Insight-users] finding the type of an image<div class="im"><br>
<br>I want somehow to find the type of an image. To be more specific, I have a greyscale and an RGB image and I want to process this two images. But when I load the image I do not know the type of the reader that I must use. Must I use an RGB pointer or a greyscale pointer?<br>

I hope somebody could help me to solve this problem<br><br>Thanks in advance<br><div style="padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;">

</div>
<br></div>_____________________________________<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.html" target="_blank">http://www.kitware.com/products/protraining.html</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>
</blockquote><br></div></div></blockquote></div><br><div style="visibility: hidden; left: -5000px; position: absolute; z-index: 9999; padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;" id="avg_ls_inline_popup">
</div>