MCPcopy Create free account
hub / github.com/MITK/MITK / DoRead

Method DoRead

Modules/Core/src/IO/mitkRawImageFileReader.cpp:68–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66}
67
68std::vector<itk::SmartPointer<mitk::BaseData>> mitk::RawImageFileReaderService::DoRead()
69{
70 std::vector<mitk::BaseData::Pointer> result;
71
72 const std::string path = this->GetLocalFileName();
73
74 const Options options = this->GetOptions();
75
76 const std::string dimensionality = options.find(IOConstants::DIMENSION())->second.ToString();
77 const std::string pixelType = options.find(IOConstants::PIXEL_TYPE())->second.ToString();
78
79 EndianityType endianity =
80 options.find(IOConstants::ENDIANNESS())->second.ToString() == IOConstants::ENDIANNESS_LITTLE() ? LITTLE : BIG;
81 int dimensions[4];
82 dimensions[0] = us::any_cast<int>(options.find(IOConstants::SIZE_X())->second);
83 dimensions[1] = us::any_cast<int>(options.find(IOConstants::SIZE_Y())->second);
84 dimensions[2] = us::any_cast<int>(options.find(IOConstants::SIZE_Z())->second);
85 dimensions[3] = 0; // us::any_cast<int>(options.find(IOConstants::SIZE_T())->second);
86
87 // check file dimensionality and pixel type and perform reading according to it
88 if (dimensionality == "2")
89 {
90 if (pixelType == IOConstants::PIXEL_TYPE_CHAR())
91 result.push_back(TypedRead<signed char, 2>(path, endianity, dimensions));
92 else if (pixelType == IOConstants::PIXEL_TYPE_UCHAR())
93 result.push_back(TypedRead<unsigned char, 2>(path, endianity, dimensions));
94 else if (pixelType == IOConstants::PIXEL_TYPE_SHORT())
95 result.push_back(TypedRead<signed short int, 2>(path, endianity, dimensions));
96 else if (pixelType == IOConstants::PIXEL_TYPE_USHORT())
97 result.push_back(TypedRead<unsigned short int, 2>(path, endianity, dimensions));
98 else if (pixelType == IOConstants::PIXEL_TYPE_UINT())
99 result.push_back(TypedRead<unsigned int, 2>(path, endianity, dimensions));
100 else if (pixelType == IOConstants::PIXEL_TYPE_INT())
101 result.push_back(TypedRead<signed int, 2>(path, endianity, dimensions));
102 else if (pixelType == IOConstants::PIXEL_TYPE_FLOAT())
103 result.push_back(TypedRead<float, 2>(path, endianity, dimensions));
104 else if (pixelType == IOConstants::PIXEL_TYPE_DOUBLE())
105 result.push_back(TypedRead<double, 2>(path, endianity, dimensions));
106 else
107 {
108 MITK_INFO << "Error while reading raw file: Dimensionality or pixel type not supported or not properly set"
109 << std::endl;
110 }
111 }
112 else if (dimensionality == "3")
113 {
114 if (pixelType == IOConstants::PIXEL_TYPE_CHAR())
115 result.push_back(TypedRead<signed char, 3>(path, endianity, dimensions));
116 else if (pixelType == IOConstants::PIXEL_TYPE_UCHAR())
117 result.push_back(TypedRead<unsigned char, 3>(path, endianity, dimensions));
118 else if (pixelType == IOConstants::PIXEL_TYPE_SHORT())
119 result.push_back(TypedRead<signed short int, 3>(path, endianity, dimensions));
120 else if (pixelType == IOConstants::PIXEL_TYPE_USHORT())
121 result.push_back(TypedRead<unsigned short int, 3>(path, endianity, dimensions));
122 else if (pixelType == IOConstants::PIXEL_TYPE_UINT())
123 result.push_back(TypedRead<unsigned int, 3>(path, endianity, dimensions));
124 else if (pixelType == IOConstants::PIXEL_TYPE_INT())
125 result.push_back(TypedRead<signed int, 3>(path, endianity, dimensions));

Callers

nothing calls this directly

Calls 4

GetLocalFileNameMethod · 0.80
GetOptionsMethod · 0.45
ToStringMethod · 0.45
findMethod · 0.45

Tested by

no test coverage detected