3 #include <iolink/IOLinkAPI.h>
4 #include <iolink/MemoryLayout.h>
5 #include <iolink/storage/RandomAccess.h>
6 #include <iolink/view/ImageView.h>
7 #include <iolink/view/MultiImageView.h>
58 static std::shared_ptr<ImageView> allocate(
const VectorXu64& shape,
60 std::shared_ptr<ImageProperties> properties,
61 std::shared_ptr<MetadataNode> metadata);
99 static std::shared_ptr<ImageView> copyInMemory(std::shared_ptr<ImageView> image);
122 static std::shared_ptr<ImageView> createOnDisk(
const std::string& dirPath,
125 std::shared_ptr<ImageProperties> properties,
126 std::shared_ptr<MetadataNode> metadata);
146 static std::shared_ptr<ImageView> createOnDisk(
const std::string& dirPath,
const VectorXu64& shape,
DataType type);
168 static std::shared_ptr<ImageView> createOnDisk(
const VectorXu64& shape,
170 std::shared_ptr<ImageProperties> properties,
171 std::shared_ptr<MetadataNode> metadata);
189 static std::shared_ptr<ImageView> createOnDisk(
const VectorXu64& shape,
DataType type);
216 static std::shared_ptr<ImageView> copyOnDisk(std::shared_ptr<ImageView> image);
245 static std::shared_ptr<ImageView> copyOnDisk(std::shared_ptr<ImageView> image,
const std::string& dirPath);
268 static std::shared_ptr<ImageView> fromBuffer(
const VectorXu64& shape,
272 std::shared_ptr<ImageProperties> properties,
273 const std::shared_ptr<MetadataNode> metadata);
291 static std::shared_ptr<ImageView> fromBuffer(
const VectorXu64& shape,
DataType type,
void* buffer,
size_t bufferSize);
311 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
315 std::shared_ptr<ImageProperties> properties,
316 const std::shared_ptr<const MetadataNode> metadata);
332 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
357 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
360 std::shared_ptr<ImageProperties> properties,
361 std::shared_ptr<const MetadataNode> metadata);
380 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
397 static std::shared_ptr<ImageView> fromImageView(std::shared_ptr<ImageView> view,
398 std::shared_ptr<const ImageProperties> properties,
399 std::shared_ptr<const MetadataNode> metadata);
419 static std::shared_ptr<ImageView> uniform(
const VectorXu64& shape,
422 std::shared_ptr<ImageProperties> properties,
423 std::shared_ptr<const MetadataNode> metadata);
439 static std::shared_ptr<ImageView> uniform(
const VectorXu64& shape,
DataType type,
void* value);
477 static std::shared_ptr<ImageView> adaptDynamicRange(std::shared_ptr<ImageView> view,
506 static std::shared_ptr<ImageView> adaptDataType(std::shared_ptr<ImageView> view,
DataType type);
526 static std::shared_ptr<ImageView> extractChannel(std::shared_ptr<ImageView> view,
size_t idxChannel);
545 static std::shared_ptr<ImageView> extractRegion(std::shared_ptr<ImageView> view,
const RegionXu64& region);
568 static std::shared_ptr<ImageView> extractAdjustedRegion(std::shared_ptr<ImageView> view,
const RegionXu64& region);
594 static std::shared_ptr<ImageView> stack(std::shared_ptr<MultiImageView> view,
ImageDimension newDimension);
618 static std::shared_ptr<ImageView> stack(std::shared_ptr<MultiImageView> view);
637 static std::shared_ptr<ImageView> assembleChannels(std::shared_ptr<ImageView> image);
657 static std::shared_ptr<ImageView> disassembleChannels(std::shared_ptr<ImageView> image);
690 static std::shared_ptr<ImageView> interlace(std::shared_ptr<MultiImageView> multiView,
723 static std::shared_ptr<ImageView> interlace(std::shared_ptr<MultiImageView> multiView);
749 static std::shared_ptr<ImageView> reinterpret(std::shared_ptr<ImageView> image,
ImageType newImageType);
787 static std::shared_ptr<ImageView> reinterpretAxes(std::shared_ptr<ImageView> image,
788 std::initializer_list<ImageDimension> dimensionsList);
808 static std::shared_ptr<ImageView> reinterpretAxes(std::shared_ptr<ImageView> image,
832 static std::shared_ptr<ImageView> subSample(std::shared_ptr<ImageView> image,
size_t step);
851 static std::shared_ptr<ImageView> flip(std::shared_ptr<ImageView> image,
ImageDimension dimension);
869 static std::shared_ptr<ImageView> flip(std::shared_ptr<ImageView> image,
size_t dimensionIndex);
881 static std::shared_ptr<ImageView> makeThreadSafe(std::shared_ptr<ImageView> image);