Framework namespace
Frameworks are the basis of most pixel-based processing in DIPlib.
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
. - class ProjectionFunction abstract
- Prototype line filter for
dip::Framework::Projection
.
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. - using ProjectionOptions = dip::detail::Options
- Combines any number of
dip::Framework::ProjectionOption
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. - enum class ProjectionOption: uint8{ NoMultiThreading }
- Defines options to the
dip::Framework::Projection
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. ThelineFilter
will be called with an output buffer of typebufferType
. - 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.
- void 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.