10 #include <unordered_map>
20 T
const * p =
static_cast<T const*
>(data);
79 const void *
const data);
213 int getWidth()
const;
214 int getHeight()
const;
215 int getDepth()
const;
219 int getNrOfVoxels()
const;
221 uchar getDimensions()
const;
223 int getNrOfChannels()
const;
224 Vector3f getSpacing()
const;
225 void setSpacing(Vector3f spacing);
226 void setSpacing(
float x,
float y,
float z);
228 float calculateMaximumIntensity();
229 float calculateMinimumIntensity();
230 float calculateAverageIntensity();
240 Image::pointer crop(VectorXi offset, VectorXi size,
bool allowOutOfBoundsCropping =
false);
246 void fill(
float value);
253 void freeAll()
override;
275 std::unordered_map<OpenCLDevice::pointer, cl::Image*>
mCLImages;
279 std::unordered_map<OpenCLDevice::pointer, cl::Buffer*>
mCLBuffers;
287 void setAllDataToOutOfDate();
288 bool isInitialized()
const;
298 void updateHostData();
302 uint getBufferSize()
const;
315 void calculateMaxAndMinIntensity();
325 create(width, height, type, nrOfChannels);
327 setData(device, ptr.release());
332 create(width, height, depth, type, nrOfChannels);
334 setData(device, ptr.release());
349 if(size.size() == 3) {
352 }
else if(size.size() == 2) {
362 if(size.size() == 3) {
363 create(size.x(), size.y(), size.z(), type, nrOfChannels, device,
365 }
else if(size.size() == 2) {
366 create(size.x(), size.y(), type, nrOfChannels, device,