Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef RawImageFileReader_H_HEADER_INCLUDED
00020 #define RawImageFileReader_H_HEADER_INCLUDED
00021 #include "itkVector.h"
00022 #include "mitkCommon.h"
00023 #include "mitkFileReader.h"
00024 #include "mitkImageSource.h"
00025
00026 namespace mitk
00027 {
00028
00029
00030
00032
00033 class MITK_CORE_EXPORT RawImageFileReader : public ImageSource, public FileReader
00034 {
00035 public:
00036 mitkClassMacro(RawImageFileReader, FileReader);
00037
00039 itkNewMacro(Self);
00040
00041 itkSetMacro(FileName, std::string);
00042 itkSetStringMacro(FileName);
00043 itkGetMacro(FileName, std::string);
00044 itkGetStringMacro(FileName);
00045
00046 itkSetMacro(FilePrefix, std::string);
00047 itkSetStringMacro(FilePrefix);
00048 itkGetMacro(FilePrefix, std::string);
00049 itkGetStringMacro(FilePrefix);
00050
00051 itkSetMacro(FilePattern, std::string);
00052 itkSetStringMacro(FilePattern);
00053 itkGetMacro(FilePattern, std::string);
00054 itkGetStringMacro(FilePattern);
00055
00057 typedef enum {UCHAR,SCHAR,USHORT,SSHORT, UINT, SINT, FLOAT, DOUBLE} IOPixelType;
00058 itkSetMacro(PixelType, IOPixelType);
00059
00061 typedef enum {LITTLE, BIG} EndianityType;
00062 itkSetMacro(Endianity, EndianityType);
00063
00064 itkSetMacro(Dimensionality, int);
00065 itkGetMacro(Dimensionality, int);
00066
00068 void SetDimensions(unsigned int i, unsigned int dim);
00069
00070 unsigned int GetDimensions(unsigned int i) const;
00071
00072 static bool CanReadFile(const std::string filename, const std::string filePrefix, const std::string filePattern);
00073
00074 protected:
00075
00076 RawImageFileReader();
00077
00078 ~RawImageFileReader();
00079
00080 virtual void GenerateData();
00081
00082 template < typename TPixel, unsigned int VImageDimensions > void TypedGenerateData();
00083
00085 std::string m_FileName;
00086
00088 std::string m_FilePrefix;
00089
00091 std::string m_FilePattern;
00092
00094 IOPixelType m_PixelType;
00095
00097 int m_Dimensionality;
00098
00100 EndianityType m_Endianity;
00101
00103 itk::Vector<int, 3> m_Dimensions;
00104
00105 };
00106
00107 }
00108
00109 #endif
00110
00111