<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>Hi John,<br><br>I'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>&nbsp;&nbsp;&nbsp; // Define image IO<br>&nbsp;&nbsp;&nbsp; itk::ImageIOBase::Pointer imageIO&nbsp; = itk::ImageIOFactory::CreateImageIO( fileName.c_str(), itk::ImageIOFactory::ReadMode );<br><br>&nbsp;&nbsp;&nbsp; // Test if image exists<br>&nbsp;&nbsp;&nbsp; if ( !imageIO )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw std::runtime_error( "Could not read image " + fileName + "." );<br><br>&nbsp;&nbsp;&nbsp; // Read image information<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageIO-&gt;SetFileName( fileName );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageIO-&gt;ReadImageInformation();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch( itk::ExceptionObject&amp; )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw std::runtime_error( "Could not read image information." );<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; 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 http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#abd189f096c2a1b3ea559bc3e4849f658).<br>The second one tells you the type of each component : short, int, double, etc. (see http://www.itk.org/Doxygen320/html/classitk_1_1ImageIOBase.html#a8dc783055a0af6f0a5a26cb080feb178)<br><br>Like that, you can have everything you need to correctly read your image (dimension etc.).<br>Read the class, it'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 id="zwchr"><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;"><b>From: </b>"john smith" &lt;mkitkinsightuser@gmail.com&gt;<br><b>To: </b>insight-users@itk.org<br><b>Sent: </b>Friday, 1 July, 2011 11:39:07 AM<br><b>Subject: </b>[Insight-users] finding the type of an image<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="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>
<br>_____________________________________<br>Powered by www.kitware.com<br><br>Visit other Kitware open-source projects at<br>http://www.kitware.com/opensource/opensource.html<br><br>Kitware offers ITK Training Courses, for more information visit:<br>http://www.kitware.com/products/protraining.html<br><br>Please keep messages on-topic and check the ITK FAQ at:<br>http://www.itk.org/Wiki/ITK_FAQ<br><br>Follow this link to subscribe/unsubscribe:<br>http://www.itk.org/mailman/listinfo/insight-users<br></blockquote><br></div></body></html>