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);
217 static std::shared_ptr<ImageView> copyOnDisk(std::shared_ptr<ImageView> image);
247 static std::shared_ptr<ImageView> copyOnDisk(std::shared_ptr<ImageView> image,
const std::string& dirPath);
270 static std::shared_ptr<ImageView> fromBuffer(
const VectorXu64& shape,
274 std::shared_ptr<ImageProperties> properties,
275 const std::shared_ptr<MetadataNode> metadata);
293 static std::shared_ptr<ImageView> fromBuffer(
const VectorXu64& shape,
DataType type,
void* buffer,
size_t bufferSize);
313 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
317 std::shared_ptr<ImageProperties> properties,
318 const std::shared_ptr<const MetadataNode> metadata);
335 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
361 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
364 std::shared_ptr<ImageProperties> properties,
365 std::shared_ptr<const MetadataNode> metadata);
385 static std::shared_ptr<ImageView> fromRandomAccess(std::shared_ptr<RandomAccess> accessor,
403 static std::shared_ptr<ImageView> fromImageView(std::shared_ptr<ImageView> view,
404 std::shared_ptr<const ImageProperties> properties,
405 std::shared_ptr<const MetadataNode> metadata);
425 static std::shared_ptr<ImageView> uniform(
const VectorXu64& shape,
428 std::shared_ptr<ImageProperties> properties,
429 std::shared_ptr<const MetadataNode> metadata);
445 static std::shared_ptr<ImageView> uniform(
const VectorXu64& shape,
DataType type,
void* value);
484 static std::shared_ptr<ImageView> adaptDynamicRange(std::shared_ptr<ImageView> view,
514 static std::shared_ptr<ImageView> adaptDataType(std::shared_ptr<ImageView> view,
DataType type);
535 static std::shared_ptr<ImageView> extractChannel(std::shared_ptr<ImageView> view,
size_t idxChannel);
555 static std::shared_ptr<ImageView> extractRegion(std::shared_ptr<ImageView> view,
const RegionXu64& region);
579 static std::shared_ptr<ImageView> extractAdjustedRegion(std::shared_ptr<ImageView> view,
const RegionXu64& region);
608 static std::shared_ptr<ImageView> stack(std::shared_ptr<MultiImageView> view,
ImageDimension newDimension);
633 static std::shared_ptr<ImageView> stack(std::shared_ptr<MultiImageView> view);
653 static std::shared_ptr<ImageView> assembleChannels(std::shared_ptr<ImageView> image);
674 static std::shared_ptr<ImageView> disassembleChannels(std::shared_ptr<ImageView> image);
708 static std::shared_ptr<ImageView> interlace(std::shared_ptr<MultiImageView> multiView,
742 static std::shared_ptr<ImageView> interlace(std::shared_ptr<MultiImageView> multiView);
770 static std::shared_ptr<ImageView> reinterpret(std::shared_ptr<ImageView> image,
ImageType newImageType);
809 static std::shared_ptr<ImageView> reinterpretAxes(std::shared_ptr<ImageView> image,
810 std::initializer_list<ImageDimension> dimensionsList);
831 static std::shared_ptr<ImageView> reinterpretAxes(std::shared_ptr<ImageView> image,
856 static std::shared_ptr<ImageView> subSample(std::shared_ptr<ImageView> image,
size_t step);
876 static std::shared_ptr<ImageView> flip(std::shared_ptr<ImageView> image,
ImageDimension dimension);
895 static std::shared_ptr<ImageView> flip(std::shared_ptr<ImageView> image,
size_t dimensionIndex);
908 static std::shared_ptr<ImageView> makeThreadSafe(std::shared_ptr<ImageView> image);