| 159 | */ |
| 160 | template <typename TPixelType> |
| 161 | static mitk::Image::Pointer GenerateRandomImage(unsigned int dimX, |
| 162 | unsigned int dimY, |
| 163 | unsigned int dimZ = 1, |
| 164 | unsigned int dimT = 1, |
| 165 | mitk::ScalarType spacingX = 1, |
| 166 | mitk::ScalarType spacingY = 1, |
| 167 | mitk::ScalarType spacingZ = 1, |
| 168 | const double randomMax = 1000.0f, |
| 169 | const double randMin = 0.0f) |
| 170 | { |
| 171 | // set the data type according to the template |
| 172 | mitk::PixelType type = MakeScalarPixelType<TPixelType>(); |
| 173 | // type.Initialize(typeid(TPixelType)); |
| 174 | |
| 175 | // initialize the MITK image with given dimension and data type |
| 176 | mitk::Image::Pointer output = mitk::Image::New(); |
| 177 | auto dimensions = new unsigned int[4]; |
| 178 | unsigned int numberOfDimensions = 0; |
| 179 | unsigned int bufferSize = 0; |
| 180 | |
| 181 | // check which dimension is needed |
| 182 | if (dimT <= 1) |
| 183 | { |
| 184 | if (dimZ <= 1) |
| 185 | { // 2D |
| 186 | numberOfDimensions = 2; |
| 187 | dimensions[0] = dimX; |
| 188 | dimensions[1] = dimY; |
| 189 | bufferSize = dimX * dimY; |
| 190 | } |
| 191 | else |
| 192 | { // 3D |
| 193 | numberOfDimensions = 3; |
| 194 | dimensions[0] = dimX; |
| 195 | dimensions[1] = dimY; |
| 196 | dimensions[2] = dimZ; |
| 197 | bufferSize = dimX * dimY * dimZ; |
| 198 | } |
| 199 | } |
| 200 | else |
| 201 | { // 4D |
| 202 | numberOfDimensions = 4; |
| 203 | dimensions[0] = dimX; |
| 204 | dimensions[1] = dimY; |
| 205 | dimensions[2] = dimZ; |
| 206 | dimensions[3] = dimT; |
| 207 | bufferSize = dimX * dimY * dimZ * dimT; |
| 208 | } |
| 209 | output->Initialize(type, numberOfDimensions, dimensions); |
| 210 | mitk::Vector3D spacing; |
| 211 | spacing[0] = spacingX; |
| 212 | spacing[1] = spacingY; |
| 213 | spacing[2] = spacingZ; |
| 214 | output->SetSpacing(spacing); |
| 215 | |
| 216 | // get a pointer to the image buffer to write into |
| 217 | TPixelType *imageBuffer = nullptr; |
| 218 | try |
nothing calls this directly
no test coverage detected