dip::Framework namespace

Frameworks are the basis of most pixel-based processing in DIPlib.

Contents

Classes

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

Aliases

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

Enums

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

Functions

void SingletonExpandedSize(dip::UnsignedArray& size1, dip::UnsignedArray const& size2)
Determines the singleton-expanded size as a combination of the two sizes.
auto 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.