ITK/Examples/Broken/SimpleOperations/MetaDataDictionary: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
(Created page with "==MetaDataDictionary.cxx== <source lang="cpp"> #include <itkImage.h> #include <itkMetaDataDictionary.h> #include <itkMetaDataObject.h> #include "itkImageRegionIterator.h" typede...")
 
No edit summary
Line 4: Line 4:
#include <itkMetaDataDictionary.h>
#include <itkMetaDataDictionary.h>
#include <itkMetaDataObject.h>
#include <itkMetaDataObject.h>
#include "itkImageRegionIterator.h"
#include <itkImageRegionIterator.h>
#include <itkImageFileWriter.h>
#include <itkImageFileReader.h>


typedef itk::Image<unsigned char, 2> ImageType;
typedef itk::Image<unsigned char, 2> ImageType;
Line 12: Line 14:
int main(int, char*[])
int main(int, char*[])
{
{
  // Create an image
   ImageType::Pointer image = ImageType::New();
   ImageType::Pointer image = ImageType::New();
   CreateImage(image);
   CreateImage(image);


   //itk::MetaDataDictionary imgMetaDictionary = image->GetMetaDataDictionary();
   // Store some data in it
   itk::MetaDataDictionary dictionary;
   itk::MetaDataDictionary dictionary;
   itk::EncapsulateMetaData<float>(dictionary,"ASimpleFloat",1.2);
   itk::EncapsulateMetaData<float>(dictionary,"ASimpleFloat",1.2);
   image->SetMetaDataDictionary(dictionary);
   image->SetMetaDataDictionary(dictionary);
  // View all of the data
   dictionary.Print(std::cout);
   dictionary.Print(std::cout);


  // View the data individually
   itk::MetaDataDictionary::Iterator itr = dictionary.Begin();
   itk::MetaDataDictionary::Iterator itr = dictionary.Begin();
    
    
Line 31: Line 37:
     ++itr;
     ++itr;
     }
     }
     
 
  // Write the image (and the data) to a file
  typedef  itk::ImageFileWriter< ImageType  > WriterType;
  WriterType::Pointer writer = WriterType::New();
  writer->SetFileName("test.mhd");
  writer->SetInput(image);
  writer->Update();
 
  // Read the image (and data) from the file
  typedef itk::ImageFileReader<ImageType> ReaderType;
  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName("test.mhd");
 
  // Display the data
  std::cout << "Data read from file:" << std::endl;
  reader->GetMetaDataDictionary().Print(std::cout);
   return EXIT_SUCCESS;
   return EXIT_SUCCESS;
}
}
Line 70: Line 92:


ADD_EXECUTABLE(MetaDataDictionary MetaDataDictionary.cxx)
ADD_EXECUTABLE(MetaDataDictionary MetaDataDictionary.cxx)
TARGET_LINK_LIBRARIES(MetaDataDictionary ITKCommon)
TARGET_LINK_LIBRARIES(MetaDataDictionary ITKCommon ITKIO)




</source>
</source>

Revision as of 01:46, 14 December 2010

MetaDataDictionary.cxx

<source lang="cpp">

  1. include <itkImage.h>
  2. include <itkMetaDataDictionary.h>
  3. include <itkMetaDataObject.h>
  4. include <itkImageRegionIterator.h>
  5. include <itkImageFileWriter.h>
  6. include <itkImageFileReader.h>

typedef itk::Image<unsigned char, 2> ImageType;

static void CreateImage(ImageType::Pointer image);

int main(int, char*[]) {

 // Create an image
 ImageType::Pointer image = ImageType::New();
 CreateImage(image);
 // Store some data in it
 itk::MetaDataDictionary dictionary;
 itk::EncapsulateMetaData<float>(dictionary,"ASimpleFloat",1.2);
 image->SetMetaDataDictionary(dictionary);
 // View all of the data
 dictionary.Print(std::cout);
 // View the data individually
 itk::MetaDataDictionary::Iterator itr = dictionary.Begin();
 
 while( itr != dictionary.End() )
   {
   std::cout << "Key   = " << itr->first << std::endl;
   std::cout << "Value = ";
   itr->second->Print( std::cout );
   std::cout << std::endl;
   ++itr;
   }
 // Write the image (and the data) to a file
 typedef  itk::ImageFileWriter< ImageType  > WriterType;
 WriterType::Pointer writer = WriterType::New();
 writer->SetFileName("test.mhd");
 writer->SetInput(image);
 writer->Update();
 // Read the image (and data) from the file
 typedef itk::ImageFileReader<ImageType> ReaderType;
 ReaderType::Pointer reader = ReaderType::New();
 reader->SetFileName("test.mhd");
 // Display the data
 std::cout << "Data read from file:" << std::endl;
 reader->GetMetaDataDictionary().Print(std::cout);

 return EXIT_SUCCESS;

}

void CreateImage(ImageType::Pointer image) {

 ImageType::IndexType start;
 start.Fill(0);
 ImageType::SizeType size;
 size.Fill(10);
 ImageType::RegionType region;
 region.SetSize(size);
 region.SetIndex(start);
 image->SetRegions(region);
 image->Allocate();
 itk::ImageRegionIterator<ImageType> imageIterator(image,image->GetLargestPossibleRegion());
 while(!imageIterator.IsAtEnd())
   {
   imageIterator.Set(20);
   ++imageIterator;
   }

} </source>

CMakeLists.txt

<source lang="cmake"> cmake_minimum_required(VERSION 2.6)

PROJECT(MetaDataDictionary)

FIND_PACKAGE(ITK REQUIRED) INCLUDE(${ITK_USE_FILE})

ADD_EXECUTABLE(MetaDataDictionary MetaDataDictionary.cxx) TARGET_LINK_LIBRARIES(MetaDataDictionary ITKCommon ITKIO)


</source>