diplib/framework.h file

Frameworks are the basis of most pixel-based processing in DIPlib. See Frameworks, The library infrastructure.

Namespaces

namespace dip::Framework
Frameworks are the basis of most pixel-based processing in DIPlib.

Classes

struct dip::Framework::ScanBuffer
Structure that holds information about input or output pixel buffers for the dip::Framework::Scan callback function object.
struct dip::Framework::ScanLineFilterParameters
Parameters to the line filter for dip::Framework::Scan.
class dip::Framework::ScanLineFilter abstract
Prototype line filter for dip::Framework::Scan.
template<dip::uint N, typename TPI, typename F>
class dip::Framework::VariadicScanLineFilter
An implementation of the ScanLinefilter for N input images and 1 output image.
struct dip::Framework::SeparableBuffer
Structure that holds information about input or output pixel buffers for the dip::Framework::Separable callback function object.
struct dip::Framework::SeparableLineFilterParameters
Parameters to the line filter for dip::Framework::Separable.
class dip::Framework::SeparableLineFilter abstract
Prototype line filter for dip::Framework::Separable.
struct dip::Framework::FullBuffer
Structure that holds information about input or output pixel buffers for the dip::Framework::Full callback function object.
struct dip::Framework::FullLineFilterParameters
Parameters to the line filter for dip::Framework::Full.
class dip::Framework::FullLineFilter abstract
Prototype line filter for dip::Framework::Full.
class dip::Framework::ProjectionFunction abstract
Prototype line filter for dip::Framework::Projection.

Aliases

using dip::Framework::ScanOptions = dip::detail::Options
Combines any number of dip::Framework::ScanOption constants together.
using dip::Framework::SeparableOptions = dip::detail::Options
Combines any number of dip::Framework::SeparableOption constants together.
using dip::Framework::FullOptions = dip::detail::Options
Combines any number of dip::Framework::FullOption constants together.
using dip::Framework::ProjectionOptions = dip::detail::Options
Combines any number of dip::Framework::ProjectionOption constants together.

Enums

enum class dip::Framework::ScanOption: uint8{ NoMultiThreading, NeedCoordinates, TensorAsSpatialDim, ExpandTensorInBuffer, NoSingletonExpansion, NotInPlace }
Defines options to the dip::Framework::Scan function.
enum class dip::Framework::SeparableOption: uint8{ NoMultiThreading, AsScalarImage, ExpandTensorInBuffer, UseOutputBorder, DontResizeOutput, UseInputBuffer, UseOutputBuffer, CanWorkInPlace, UseRealComponentOfOutput }
Defines options to the dip::Framework::Separable function.
enum class dip::Framework::FullOption: uint8{ NoMultiThreading, AsScalarImage, ExpandTensorInBuffer, BorderAlreadyExpanded }
Defines options to the dip::Framework::Full function.
enum class dip::Framework::ProjectionOption: uint8{ NoMultiThreading }
Defines options to the dip::Framework::Projection function.

Functions

void dip::Framework::SingletonExpandedSize(dip::UnsignedArray& size1, dip::UnsignedArray const& size2)
Determines the singleton-expanded size as a combination of the two sizes.
auto dip::Framework::SingletonExpandedSize(dip::ImageConstRefArray const& in) -> dip::UnsignedArray
Determines if images can be singleton-expanded to the same size, and what that size would be.
auto dip::Framework::SingletonExpandedSize(dip::ImageArray const& in) -> dip::UnsignedArray
Determines if images can be singleton-expanded to the same size, and what that size would be.
auto dip::Framework::SingletonExpendedTensorElements(dip::ImageArray const& in) -> dip::uint
Determines if tensors in images can be singleton-expanded to the same size, and what that size would be.
auto dip::Framework::OptimalProcessingDim(dip::Image const& in) -> dip::uint
Determines the best processing dimension, which is the one with the smallest stride, except if that dimension is very small and there’s a longer dimension.
auto dip::Framework::OptimalProcessingDim(dip::Image const& in, dip::UnsignedArray const& kernelSizes) -> dip::uint
Determines the best processing dimension as above, but giving preference to a dimension where kernelSizes is large also.
void dip::Framework::Scan(dip::ImageConstRefArray const& in, dip::ImageRefArray& out, dip::DataTypeArray const& inBufferTypes, dip::DataTypeArray const& outBufferTypes, dip::DataTypeArray const& outImageTypes, dip::UnsignedArray const& nTensorElements, dip::Framework::ScanLineFilter& lineFilter, dip::Framework::ScanOptions opts = {})
Framework for pixel-based processing of images.
void dip::Framework::ScanSingleOutput(dip::Image& out, dip::DataType bufferType, dip::Framework::ScanLineFilter& lineFilter, dip::Framework::ScanOptions opts = {})
Calls dip::Framework::Scan with one output image, which is already forged. The lineFilter will be called with an output buffer of type bufferType.
void dip::Framework::ScanSingleInput(dip::Image const& in, dip::Image const& c_mask, dip::DataType bufferType, dip::Framework::ScanLineFilter& lineFilter, dip::Framework::ScanOptions opts = {})
Calls dip::Framework::Scan with one input image and a mask image, and no output image.
void dip::Framework::ScanMonadic(dip::Image const& in, dip::Image& out, dip::DataType bufferTypes, dip::DataType outImageType, dip::uint nTensorElements, dip::Framework::ScanLineFilter& lineFilter, dip::Framework::ScanOptions opts = {})
Calls dip::Framework::Scan with one input image and one output image.
void dip::Framework::ScanDyadic(dip::Image const& in1, dip::Image const& in2, dip::Image& out, dip::DataType inBufferType, dip::DataType outBufferType, dip::DataType outImageType, dip::Framework::ScanLineFilter& lineFilter, dip::Framework::ScanOptions opts = {})
Calls dip::Framework::Scan with two input images and one output image.
template<typename TPI, typename F>
auto dip::Framework::NewMonadicScanLineFilter(F const& func, dip::uint cost = 1) -> std::unique_ptr<ScanLineFilter>
Support for quickly defining monadic operators (1 input image, 1 output image). See dip::Framework::VariadicScanLineFilter.
template<typename TPI, typename F>
auto dip::Framework::NewDyadicScanLineFilter(F const& func, dip::uint cost = 1) -> std::unique_ptr<ScanLineFilter>
Support for quickly defining dyadic operators (2 input images, 1 output image). See dip::Framework::VariadicScanLineFilter.
template<typename TPI, typename F>
auto dip::Framework::NewTriadicScanLineFilter(F const& func, dip::uint cost = 1) -> std::unique_ptr<ScanLineFilter>
Support for quickly defining triadic operators (3 input images, 1 output image). See dip::Framework::VariadicScanLineFilter.
template<typename TPI, typename F>
auto dip::Framework::NewTetradicScanLineFilter(F const& func, dip::uint cost = 1) -> std::unique_ptr<ScanLineFilter>
Support for quickly defining tetradic operators (4 input images, 1 output image). See dip::Framework::VariadicScanLineFilter.
void dip::Framework::Separable(dip::Image const& in, dip::Image& out, dip::DataType bufferType, dip::DataType outImageType, dip::BooleanArray process, dip::UnsignedArray border, dip::BoundaryConditionArray boundaryCondition, dip::Framework::SeparableLineFilter& lineFilter, dip::Framework::SeparableOptions opts = {})
Framework for separable filtering of images.
void dip::Framework::OneDimensionalLineFilter(dip::Image const& in, dip::Image& out, dip::DataType inBufferType, dip::DataType outBufferType, dip::DataType outImageType, dip::uint processingDimension, dip::uint border, dip::BoundaryCondition boundaryCondition, dip::Framework::SeparableLineFilter& lineFilter, dip::Framework::SeparableOptions opts = {})
Framework for filtering of image lines. This is a version of dip::Framework::Separable that works along one dimension only.
void dip::Framework::Full(dip::Image const& in, dip::Image& out, dip::DataType inBufferType, dip::DataType outBufferType, dip::DataType outImageType, dip::uint nTensorElements, dip::BoundaryConditionArray const& boundaryCondition, dip::Kernel const& kernel, dip::Framework::FullLineFilter& lineFilter, dip::Framework::FullOptions opts = {})
Framework for filtering of images with an arbitrary shape neighborhood.
void dip::Framework::Projection(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::DataType outImageType, dip::BooleanArray process, dip::Framework::ProjectionFunction& projectionFunction, dip::Framework::ProjectionOptions opts = {})
Framework for projecting one or more dimensions of an image.