<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Dear insight-users</span><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">It was found difficult to get dimensions in my image data file(.vtk) using vtkImageReader2 Then I tried with ItkImageFileReader .It reads the file.The outputs would like this.<div>
<div>Pixel Type is unsigned_char</div><div>numDimensions:3</div><div>component size:1</div><div>pixeltype<string>:rgb</div><div>pixel type:2</div><div>I need the hole extent of dimensions from the file(that is x=675 y=401 z=450)</div>
<div>What codes should be added to get the hole dimensions.<br> </div><div>My codes are as follows.</div><div><div><br></div><div>#include "itkImage.h"</div><div>#include "itkImageFileReader.h"</div><div>
</div><div>template<typename TImageType></div><div>static void ReadFile(std::string filename, typename TImageType::Pointer image);</div><div> </div><div>int main(int argc, char *argv[])</div><div>{</div><div> if(argc < 2)</div>
<div> {</div><div> std::cerr << "Required: filename" << std::endl;</div><div> </div><div> return EXIT_FAILURE;</div><div> }</div><div> std::string inputFilename ="D:\\rgbabdomen\\Debug\\output.vtk" ;</div>
<div> </div><div> typedef itk::ImageIOBase::IOComponentType ScalarPixelType;</div><div> </div><div> itk::ImageIOBase::Pointer imageIO =</div><div> itk::ImageIOFactory::CreateImageIO(</div><div> inputFilename.c_str(), itk::ImageIOFactory::ReadMode);</div>
<div> </div><div> imageIO->SetFileName("D:\\rgbabdomen\\Debug\\output.vtk");</div><div> imageIO->ReadImageInformation();</div><div> const ScalarPixelType pixelType = imageIO->GetComponentType();</div>
<div> std::cout << "Pixel Type is " << imageIO->GetComponentTypeAsString(pixelType) // 'double'</div><div> << std::endl;</div><div> const size_t numDimensions = imageIO->GetNumberOfDimensions();</div>
<div> std::cout << "numDimensions: " << numDimensions << std::endl; // '2'</div><div> </div><div> std::cout << "component size: " << imageIO->GetComponentSize() << std::endl; // '8'</div>
<div> std::cout << "pixel type (string): " << imageIO->GetPixelTypeAsString(imageIO->GetPixelType()) << std::endl; // 'vector'</div><div> std::cout << "pixel type: " << imageIO->GetPixelType() << std::endl; // '5'</div>
<div> </div><div> /*</div><div> switch (pixelType)</div><div> {</div><div> case itk::ImageIOBase::COVARIANTVECTOR:</div><div> typedef itk::Image<unsigned char, 2> ImageType;</div><div> ImageType::Pointer image = ImageType::New();</div>
<div> ReadFile<ImageType>(inputFilename, image);</div><div> break;</div><div> </div><div> typedef itk::Image<unsigned char, 2> ImageType;</div><div> ImageType::Pointer image = ImageType::New();</div>
<div> ReadFile<ImageType>(inputFilename, image);</div><div> break;</div><div> </div><div> default:</div><div> std::cerr << "Pixel Type ("</div><div> << imageIO->GetComponentTypeAsString(pixelType)</div>
<div> << ") not supported. Exiting." << std::endl;</div><div> return -1;</div><div> }</div><div> */</div><div> </div><div> return EXIT_SUCCESS;</div><div>}</div><div> </div><div>
template<typename TImageType></div><div>void ReadFile(std::string filename, typename TImageType::Pointer image)</div><div>{</div><div> typedef itk::ImageFileReader<TImageType> ReaderType;</div><div> typename ReaderType::Pointer reader = ReaderType::New();</div>
<div> </div><div> reader->SetFileName(filename);</div><div> reader->Update();</div><div> </div><div> image->Graft(reader->GetOutput());</div><div>}</div></div><div><br></div><div><br></div><div>Cmake is also attached herewith.</div>
<div><br></div><div>regards</div></div><div>Shirani</div></div>