| 66 | } |
| 67 | |
| 68 | std::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)); |
nothing calls this directly
no test coverage detected