go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkMevisDicomTiffImageIO.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkMevisDicomTiffImageIO.h,v $
00005   Language:  C++
00006   Date:      $Date: 2009/10/13 15:11:01 $
00007   Version:   $Revision: 1.23 $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even 
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 #ifndef __itkMevisDicomTiffImageIO_h
00018 #define __itkMevisDicomTiffImageIO_h
00019 
00020 #ifdef _MSC_VER
00021 #pragma warning ( disable : 4786 )
00022 #endif
00023 
00024 #include "itkImageIOBase.h"
00025 #include "itk_tiff.h"
00026 #include "gdcmTag.h"
00027 #include "gdcmAttribute.h"
00028 
00029 #include <fstream>
00030 #include <string>
00031 
00032 
00033 namespace itk
00034 {
00035 
00036 
00108 class TIFFReaderInternal;
00109 
00110 class ITK_EXPORT MevisDicomTiffImageIO : public ImageIOBase
00111 {
00112 public:
00113 
00114   typedef MevisDicomTiffImageIO         Self;
00115   typedef ImageIOBase                   Superclass;
00116   typedef SmartPointer<Self>            Pointer;
00117   
00118   itkNewMacro(Self);
00119   itkTypeMacro(MevisDicomTiffImageIO, Superclass);
00120   itkGetMacro(RescaleSlope, double);
00121   itkGetMacro(RescaleIntercept, double);
00122   itkGetMacro(GantryTilt, double);
00123 
00124   virtual bool CanReadFile(const char*);
00125   virtual void ReadImageInformation();
00126   virtual void Read(void* buffer);
00127   virtual bool CanWriteFile(const char*);
00128   virtual void WriteImageInformation();
00129   virtual void Write(const void* buffer);
00130   virtual bool CanStreamRead()
00131     {
00132     return false;
00133     }
00134 
00135   virtual bool CanStreamWrite()
00136     {
00137     return false;
00138     }
00139 
00140 protected:
00141   MevisDicomTiffImageIO();
00142   ~MevisDicomTiffImageIO();
00143   void PrintSelf(std::ostream& os, Indent indent) const;
00144   
00145 private:
00146   
00147   MevisDicomTiffImageIO(const Self&);
00148   void operator=(const Self&);
00149 
00150   bool FindElement(const gdcm::DataSet ds, const gdcm::Tag tag, gdcm::DataElement &de,
00151                         const bool breadthfirstsearch);
00152 
00153   // the following may include the pathname
00154   std::string                           m_DcmFileName;
00155   std::string                           m_TiffFileName;
00156 
00157   TIFF *                                m_TIFFImage;
00158   unsigned int                          m_TIFFDimension;
00159   bool                                  m_IsOpen;
00160   unsigned short                        m_Compression;
00161   unsigned int                          m_BitsPerSample;
00162   unsigned int                          m_Width;
00163   unsigned int                          m_Length;
00164   unsigned int                          m_Depth;
00165   bool                                  m_IsTiled;
00166   unsigned int                          m_TileWidth;
00167   unsigned int                          m_TileLength;
00168   unsigned int                          m_TileDepth;
00169   unsigned short                        m_NumberOfTiles;
00170 
00171   double                                m_RescaleSlope;
00172   double                                m_RescaleIntercept;
00173   double                                m_GantryTilt;
00174   double                                m_EstimatedMinimum;
00175   double                                m_EstimatedMaximum;
00176 
00177 
00178 };
00179 
00180 } // end namespace itk
00181 
00182 #endif // __itkMevisDicomTiffImageIO_h


Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo