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>
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);
170 std::shared_ptr<ImageProperties> properties,
171 std::shared_ptr<MetadataNode> metadata);
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);
274 std::shared_ptr<ImageProperties> properties,
275 const std::shared_ptr<MetadataNode> metadata);
318 std::shared_ptr<ImageProperties> properties,
319 const std::shared_ptr<const MetadataNode> metadata);
365 std::shared_ptr<ImageProperties> properties,
366 std::shared_ptr<const MetadataNode> metadata);
404 static std::shared_ptr<ImageView>
fromImageView(std::shared_ptr<ImageView> view,
405 std::shared_ptr<const ImageProperties> properties,
406 std::shared_ptr<const MetadataNode> metadata);
429 std::shared_ptr<ImageProperties> properties,
430 std::shared_ptr<const MetadataNode> metadata);
536 static std::shared_ptr<ImageView>
extractChannel(std::shared_ptr<ImageView> view,
size_t idxChannel);
612 static std::shared_ptr<ImageView>
stack(std::shared_ptr<MultiImageView> view,
ImageDimension newDimension);
640 static std::shared_ptr<ImageView>
stack(std::shared_ptr<MultiImageView> view);
674 static std::shared_ptr<ImageView>
stack(std::shared_ptr<MultiImageView> view,
751 static std::shared_ptr<ImageView>
interlace(std::shared_ptr<MultiImageView> multiView,
785 static std::shared_ptr<ImageView>
interlace(std::shared_ptr<MultiImageView> multiView);
853 std::initializer_list<ImageDimension> dimensionsList);
899 static std::shared_ptr<ImageView>
subSample(std::shared_ptr<ImageView> image,
size_t step);
938 static std::shared_ptr<ImageView>
flip(std::shared_ptr<ImageView> image,
size_t dimensionIndex);
951 static std::shared_ptr<ImageView>
makeThreadSafe(std::shared_ptr<ImageView> image);
Stores information about a data type.
Definition: DataType.h:162
A flag system that describes the dimensions of an image.
Definition: ImageType.h:40
This factory is aimed at creating dataset views.
Definition: ImageViewFactory.h:27
static std::shared_ptr< ImageView > extractChannel(std::shared_ptr< ImageView > view, size_t idxChannel)
Returns an ImageView from another view containing only given channel Index (useful when channel is no...
static std::shared_ptr< ImageView > allocate(const VectorXu64 &shape, DataType type, std::shared_ptr< ImageProperties > properties, std::shared_ptr< MetadataNode > metadata)
Creates a memory image with the given shape and type.
static std::shared_ptr< ImageView > fromRandomAccess(std::shared_ptr< RandomAccess > accessor, MemoryLayout layout, const VectorXu64 &shape, const DataType type, std::shared_ptr< ImageProperties > properties, const std::shared_ptr< const MetadataNode > metadata)
Create an image from a RandomAccess.
static std::shared_ptr< ImageView > createOnDisk(const std::string &dirPath, const VectorXu64 &shape, DataType type, std::shared_ptr< ImageProperties > properties, std::shared_ptr< MetadataNode > metadata)
Create an image with the data stored into a temporary file (in given folder) on disk in raw.
static std::shared_ptr< ImageView > adaptDynamicRange(std::shared_ptr< ImageView > view, DataType type, const Vector2d &inputRange, const Vector2d &outputRange)
Creates an ImageView from another view with given type by mapping dynamic range.
static std::shared_ptr< ImageView > allocate(const VectorXu64 &shape, DataType type)
Creates a memory image with the given shape and type.
static std::shared_ptr< ImageView > createOnDisk(const std::string &dirPath, const VectorXu64 &shape, DataType type)
Create an image with the data stored into a temporary file (in given folder) on disk in raw.
static std::shared_ptr< ImageView > flip(std::shared_ptr< ImageView > image, ImageDimension dimension)
Flip an ImageView following the given dimension.
static std::shared_ptr< ImageView > extractRegion(std::shared_ptr< ImageView > view, const RegionXu64 ®ion)
Creates an ImageView of given region from given view.
static std::shared_ptr< ImageView > createOnDisk(const VectorXu64 &shape, DataType type, std::shared_ptr< ImageProperties > properties, std::shared_ptr< MetadataNode > metadata)
Create an image with the data stored into a temporary file on disk in raw.
static std::shared_ptr< ImageView > fromBuffer(const VectorXu64 &shape, DataType type, void *buffer, size_t bufferSize)
Creates an image from existing buffer.
static std::shared_ptr< ImageView > flip(std::shared_ptr< ImageView > image, size_t dimensionIndex)
Flip an ImageView following the given dimension.
static std::shared_ptr< ImageView > fromImageView(std::shared_ptr< ImageView > view, std::shared_ptr< const ImageProperties > properties, std::shared_ptr< const MetadataNode > metadata)
Allows to apply specific properties and metadata to a ImageView without impact on originals.
static std::shared_ptr< ImageView > adaptDataType(std::shared_ptr< ImageView > view, DataType type)
Creates an ImageView from another view with given type.
static std::shared_ptr< ImageView > interlace(std::shared_ptr< MultiImageView > multiView)
Interlace frames of a MultiImageView into an ImageView.
static std::shared_ptr< ImageView > uniform(const VectorXu64 &shape, DataType type, void *value, std::shared_ptr< ImageProperties > properties, std::shared_ptr< const MetadataNode > metadata)
Create an image with uniform value.
static std::shared_ptr< ImageView > stack(std::shared_ptr< MultiImageView > view, ImageDimension newDimension)
Creates an ImageView from a multiImageView by agglomerating frames into a new given dimension.
static std::shared_ptr< ImageView > copyInMemory(std::shared_ptr< ImageView > image)
Copy given image in memory.
static std::shared_ptr< ImageView > interlace(std::shared_ptr< MultiImageView > multiView, ImageInterpretation newInterpretation, bool hasAlpha)
Interlace frames of a MultiImageView into an ImageView.
static std::shared_ptr< ImageView > fromRandomAccess(std::shared_ptr< RandomAccess > accessor, const VectorXu64 &shape, const DataType type, std::shared_ptr< ImageProperties > properties, std::shared_ptr< const MetadataNode > metadata)
Create an image from a given RandomAccess.
static std::shared_ptr< ImageView > subSample(std::shared_ptr< ImageView > image, size_t step)
Create a sub-sampled imageView from original.
static std::shared_ptr< ImageView > createOnDisk(const VectorXu64 &shape, DataType type)
Create an image with the data stored into a temporary file on disk in raw.
static std::shared_ptr< ImageView > stack(std::shared_ptr< MultiImageView > view)
Creates an ImageView from a multiImageView by agglomerating frames into a new unidentified dimension.
static std::shared_ptr< ImageView > copyOnDisk(std::shared_ptr< ImageView > image, const std::string &dirPath)
Load an image data into a temporary raw file on disk.
static std::shared_ptr< ImageView > reinterpretAxes(std::shared_ptr< ImageView > image, const ImageDimension *dimensionsList, size_t count)
Reinterpret an ImageView by identifying each dimension (axis).
static std::shared_ptr< ImageView > reinterpretAxes(std::shared_ptr< ImageView > image, std::initializer_list< ImageDimension > dimensionsList)
Reinterpret an ImageView by identifying each dimension (axis).
static std::shared_ptr< ImageView > disassembleChannels(std::shared_ptr< ImageView > image)
Adapt a N dimensions vectorial ImageView into a N+1 dimensions scalar one.
static std::shared_ptr< ImageView > fromRandomAccess(std::shared_ptr< RandomAccess > accessor, MemoryLayout layout, const VectorXu64 &shape, const DataType type)
Create an image from a RandomAccess.
static std::shared_ptr< ImageView > assembleChannels(std::shared_ptr< ImageView > image)
Adapt a N dimensions scalar ImageView into a N-1 dimensions vectorial one.
static std::shared_ptr< ImageView > makeThreadSafe(std::shared_ptr< ImageView > image)
Make an ImageView threadsafe.
static std::shared_ptr< ImageView > uniform(const VectorXu64 &shape, DataType type, void *value)
Create an image with uniform value.
static std::shared_ptr< ImageView > stack(std::shared_ptr< MultiImageView > view, ImageDimension newDimension, size_t threadCount)
Creates an ImageView from a multiImageView by agglomerating frames into a new given dimension.
static std::shared_ptr< ImageView > reinterpret(std::shared_ptr< ImageView > image, ImageType newImageType)
Reinterpret an ImageView with a new ImageTypeId.
static std::shared_ptr< ImageView > extractAdjustedRegion(std::shared_ptr< ImageView > view, const RegionXu64 ®ion)
Creates an ImageView of given region from given view, packing flat dimensions.
static std::shared_ptr< ImageView > fromRandomAccess(std::shared_ptr< RandomAccess > accessor, const VectorXu64 &shape, const DataType type)
Create an image from a given RandomAccess.
static std::shared_ptr< ImageView > copyOnDisk(std::shared_ptr< ImageView > image)
Load an image data into a temporary raw file on disk.
static std::shared_ptr< ImageView > fromBuffer(const VectorXu64 &shape, DataType type, void *buffer, size_t bufferSize, std::shared_ptr< ImageProperties > properties, const std::shared_ptr< MetadataNode > metadata)
Creates an image from existing buffer.
A Region using dynamic vectors.
Definition: RegionX.h:14
An arithmetic vector.
Definition: Vector.h:37
A dynamically sized arithmetic vector.
Definition: VectorX.h:18
All IOLink symbols are enclosed in this namespace.
Definition: ArrayX.h:8
ImageInterpretation
Interpretation of an Image.
Definition: ImageInfoProperty.h:17
MemoryLayout
This enum indicates how a multidimensionnal array is stored in continuous memory.
Definition: MemoryLayout.h:11
ImageDimension
Enum used in ImageType to represent each dimension of an Image.
Definition: ImageType.h:16