fast::ImagePyramid class

Image pyramid data object.

Data object for storing large images as tiled image pyramids. Storage uses virtual memory enabling the images to be larger than the available RAM.

Base classes

class SpatialDataObject
Abstract base class for all spatial data objects.

Constructors, destructors, conversion operators

~ImagePyramid()

Public functions

auto create(int width, int height, int channels, int patchWidth, int patchHeight, ImageCompression compression, int compressionQuality, DataType dataType) -> std::shared_ptr<ImagePyramid>
Create a tiled image pyramid instance.
auto create(openslide_t* fileHandle, std::vector<ImagePyramidLevel> levels) -> std::shared_ptr<ImagePyramid>
auto create(TIFF* fileHandle, std::vector<ImagePyramidLevel> levels, int channels, bool isOMETIFF) -> std::shared_ptr<ImagePyramid>
auto getNrOfLevels() -> int
auto getLevelWidth(int level) -> int
auto getLevelHeight(int level) -> int
auto getLevelTileWidth(int level) -> int
auto getLevelTileHeight(int level) -> int
auto getLevelTilesX(int level) -> int
auto getLevelTilesY(int level) -> int
auto getLevelScale(int level) -> float
auto getLevelForMagnification(float magnification) -> int
Get level for a given magnification if it exists.
auto getClosestLevelForMagnification(float magnification, float percentageSlack = 0.1f) -> std::pair<int, float>
auto getFullWidth() -> int
auto getFullHeight() -> int
auto getNrOfChannels() const -> int
auto isBGRA() const -> bool
auto usesTIFF() const -> bool
auto isPyramidFullyInitialized() const -> bool
auto usesOpenSlide() const -> bool
auto getTIFFPath() const -> std::string
void setSpacing(Vector3f spacing)
auto getSpacing() const -> Vector3f
auto getAccess(accessType type) -> ImagePyramidAccess::pointer
auto getDirtyPatches() -> std::unordered_set<std::string>
auto isDirtyPatch(const std::string& tileID) -> bool
auto isOMETIFF() const -> bool
void setDirtyPatch(int level, int patchIdX, int patchIdY)
void clearDirtyPatches(std::set<std::string> patches)
void free(ExecutionDevice::pointer device) override
void freeAll() override
auto getTransformedBoundingBox() const -> DataBoundingBox override
auto getBoundingBox() const -> DataBoundingBox override
auto getCompression() const -> ImageCompression
auto getCompressionQuality() const -> int
void setCompressionModels(std::shared_ptr<NeuralNetwork> compressionModel, std::shared_ptr<NeuralNetwork> decompressionModel, float outputScaleFactor = 1.0f)
void setCompressionModel(std::shared_ptr<NeuralNetwork> compressionModel)
void setDecompressionModel(std::shared_ptr<NeuralNetwork> decompressionModel, float outputScaleFactor = 1.0f)
auto getCompressionModel() const -> std::shared_ptr<NeuralNetwork>
auto getDecompressionModel() const -> std::shared_ptr<NeuralNetwork>
auto getDecompressionOutputScaleFactor() const -> float
auto getDataType() const -> DataType
auto getMagnification() const -> float
void setMagnification(float magnification)

Function documentation

std::shared_ptr<ImagePyramid> fast::ImagePyramid::create(int width, int height, int channels, int patchWidth, int patchHeight, ImageCompression compression, int compressionQuality, DataType dataType)

Create a tiled image pyramid instance.

Parameters
width Full width of image pyramid
height Full height of image pyramid
channels Nr of channels of image pyramid (3 == color (RGB), 1 == grayscale)
patchWidth Width of each patch
patchHeight Height of each patch
compression Compression type to use when storing the data in the TIFF.
compressionQuality Quality of compression when using lossy compression like JPEG and JPEGXL. 100 = best, 0 = worst.
dataType Data type
Returns instance

Create a tiled image pyramid using TIFF.

int fast::ImagePyramid::getLevelForMagnification(float magnification)

Get level for a given magnification if it exists.

Parameters
magnification Magnification amount (e.g. 40, 20, 10 etc.)
Returns level

bool fast::ImagePyramid::isPyramidFullyInitialized() const

Whether all patches in entire pyramid has been initialized.