template<typename OperandT>
class ImFusion::ImageMath::MaskLeaf< OperandT >
Use a Mask/GlMask as an ImageMath leaf that can be used in ImageMath expressions.
The "value" parameter for the mask is itself an ImageMath expression.
- Warning
- GlMasks expect their "value" parameter in normalized storage convention, Masks expect their "value" in storage convention. ImageMath typically works in (unnormalized) original convention,
- See also
- ImageDescriptor The normalization is performed with the
pixelType of the expression's ImageDescriptor, it is the responsibility of the user to verify that this yields something that the mask expects. The original->storage conversion must be performed by the user. Users must be aware of the fact that value domain conversions can result in rounding errors.
Example usage, here si is a SharedImage
m->setRoundness(100);
auto derivedExpr = (maskLeaf > 0).
select(1.0,2.0);
auto select(const ExprBaseTpl< LhsT > &lhs, const ExprBaseTpl< RhsT > &rhs) const
Definition ExprBaseTpl.h:552
auto makeArray(TypedImage< T > &img, bool ignoreShiftAndScale, MagFilter magFilter, Wrap wrap, const vec4f &borderColor)
Convenience function to create an array leaf (needed as until c++17 there is no template type deducti...
Definition Array.h:657
- Warning
- Using different underlying types or shift+scale values in the operand will give undefined results for masks that depend on the operand.
|
|
| MaskLeaf (const OperandT &operand, std::shared_ptr< Mask > mask) |
| |
|
template<typename ImgT> |
| auto | convertToMemImgExpr () const noexcept |
| |
|
auto | convertToSharedImgExpr (std::size_t index) const |
| | SharedImageSet version.
|
| |
|
template<typename SubOperandT> |
| auto | substituteVariable (const SubOperandT &operand) const |
| | Substitutes any Variable leaf.
|
| |
|
IMFUSION_STRONG_INLINE expr_type | eval (const std::size_t, const vec4i &coord) const |
| | CPU implementation.
|
| |
| int | numImgs () const override |
| | Return number of images of this expression.
|
| |
| DeviceStrategy | deviceStrategy () const override |
| | Return DeviceStrategy of this expression.
|
| |
| ImageDescriptor | imgDesc () const override |
| | Return ImageDescriptor of this expression. This reference is expected to remain the same while the class exists.
|
| |
| std::vector< internal::GlExprInterface * > | children () override |
| | Used for traversing the expression tree. Contains the immediate children of node.
|
| |
| std::vector< const internal::GlExprInterface * > | children () const override |
| | Used for traversing the expression tree. Contains the immediate children of node.
|
| |
| const std::shared_ptr< Mask > & | mask () const override |
| |
| internal::GlExprInterface & | operand () override |
| |
| const internal::GlExprInterface & | operand () const override |
| |
|
const auto & | get () const |
| | get a const reference to this with the actual type
|
| |
|
auto & | get () |
| | get a reference to this with the actual type
|
| |
| auto | polyWrapper () const |
| |
| auto | uniquePolyWrapper () const |
| |
| auto | sharedPolyWrapper () const |
| |
| auto | binaryOp (const ExprBaseTpl< RhsT > &rhs, const Op &func=Op()) const |
| |
|
auto | binaryOp (RhsT rhs, const Op &func=Op(), typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| |
|
auto | binaryOp (Eigen::Matrix< RhsT, Dim, 1, Options, MaxRows, MaxCols > rhs, const Op &func=Op(), typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| |
| auto | binaryOp (const ExprBaseTpl< RhsT > &rhs, const Op &func, const StringOp &stringFunc) const |
| |
|
auto | binaryOp (RhsT rhs, const Op &func, const StringOp &stringFunc, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| |
|
auto | binaryOp (Eigen::Matrix< RhsT, Dim, 1, Options, MaxRows, MaxCols > rhs, const Op &func, const StringOp &stringFunc, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| |
| auto | unaryOp (const Op &func=Op()) const |
| |
| auto | unaryOp (const Op &func, const StringOp &stringFunc) const |
| |
| reduction_type | reduce (std::vector< vec4i > *arg=nullptr) const |
| |
|
auto | forceCPU () const |
| | Forces CPU execution.
|
| |
|
auto | forceGPU () const |
| | Forces GPU execution.
|
| |
| auto | channelSwizzle (const std::vector< std::size_t > &indices) const |
| |
|
auto | head () |
| |
|
| ADD_SPECIAL_SWIZZLE (x, {0}) |
| |
|
| ADD_SPECIAL_SWIZZLE (y, {1}) |
| |
|
| ADD_SPECIAL_SWIZZLE (z, {2}) |
| |
|
| ADD_SPECIAL_SWIZZLE (w, {3}) |
| |
|
| ADD_SPECIAL_SWIZZLE (r, {0}) |
| |
|
| ADD_SPECIAL_SWIZZLE (g, {1}) |
| |
|
| ADD_SPECIAL_SWIZZLE (b, {2}) |
| |
|
| ADD_SPECIAL_SWIZZLE (a, {3}) |
| |
|
| ADD_SPECIAL_SWIZZLE (xy, std::vector< size_t >({0, 1})) |
| |
|
| ADD_SPECIAL_SWIZZLE (rg, std::vector< size_t >({0, 1})) |
| |
|
| ADD_SPECIAL_SWIZZLE (xyz, std::vector< size_t >({0, 1, 2})) |
| |
|
| ADD_SPECIAL_SWIZZLE (xyzw, std::vector< size_t >({0, 1, 2, 3})) |
| |
|
| ADD_SPECIAL_SWIZZLE (rgb, std::vector< size_t >({0, 1, 2})) |
| |
|
| ADD_SPECIAL_SWIZZLE (rgba, std::vector< size_t >({0, 1, 2, 3})) |
| |
| auto | streamChannels (int numStreamedChannels) const |
| |
| auto | substituteVariableWithImg (T &img) const |
| |
| auto | operator- () const |
| |
|
auto | cast () const |
| |
| auto | storageToOriginal (const ImageDescriptor &desc) |
| | Apply shift/scale to the operand,.
|
| |
| auto | originalToStorage (const ImageDescriptor &desc) |
| | Apply shift/scale to the operand,.
|
| |
|
auto | channelReduction () |
| |
|
| ADD_CHANNEL_REDUCTION_OPERATOR (channelSum, add) |
| |
|
| ADD_CHANNEL_REDUCTION_OPERATOR (channelProd, mult) |
| |
|
| ADD_CHANNEL_REDUCTION_OPERATOR (channelMax, max) |
| |
|
| ADD_CHANNEL_REDUCTION_OPERATOR (channelMin, min) |
| |
|
| ADD_CHANNEL_REDUCTION_OPERATOR (length, length) |
| |
|
auto | channelMean () |
| |
|
auto | squaredLength () const |
| |
|
auto | channelDistance (const ExprBaseTpl< RhsT > &other) const |
| |
|
auto | channelDistance (const Eigen::Matrix< T, Dim, 1 > c) |
| |
|
auto | dot (const ExprBaseTpl< RhsT > &other) const |
| |
|
auto | stashThenApply (const ExprBaseTpl< VariableT > &varExpr) const |
| |
|
auto | hnormalized () const |
| |
|
auto | normalized () const |
| |
|
auto | homogeneous () const |
| |
|
auto | appendZero () const |
| |
|
auto | select (const ExprBaseTpl< LhsT > &lhs, const ExprBaseTpl< RhsT > &rhs) const |
| | Ternary (condition.x ? if_true : if_false) operator.
|
| |
|
auto | select (LhsT lhs, RhsT rhs, typename std::enable_if< std::is_arithmetic_v< LhsT > &&std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| | Ternary (condition.x ? if_true : if_false) operator.
|
| |
|
auto | select (LhsT lhs, const ExprBaseTpl< RhsT > &rhs, typename std::enable_if< std::is_arithmetic_v< LhsT > >::type *=nullptr) const |
| | Ternary (condition.x ? if_true : if_false) operator.
|
| |
|
auto | select (const ExprBaseTpl< LhsT > &lhs, RhsT rhs, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| | Ternary (condition.x ? if_true : if_false) operator.
|
| |
|
| ADD_REDUCTION_OPERATOR (sum, add) |
| |
|
| ADD_REDUCTION_OPERATOR (prod, mult) |
| |
|
| ADD_ARG_REDUCTION_OPERATOR (min, min) |
| |
|
| ADD_ARG_REDUCTION_OPERATOR (max, max) |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | mean () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | l1Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | squaredl2Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | l2Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | lpNorm (double p) const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | lInfNorm () const |
| |
|
auto | evaluateIntoImage (bool clearShiftScale=false) const |
| | Create an empty image and evaluate this expression into it.
|
| |
|
auto | toMask () const |
| |
|
auto | toDeformation (const ImageDescriptorWorld imgDesc) const |
| |
|
auto | resample (const ImageDescriptorWorld &inputDesc, const ImageDescriptorWorld &outputDesc) const |
| |
|
auto | resample (SharedImage &inputDesc, SharedImage &outputDesc, std::enable_if_t< std::is_same_v< T, SharedImage > > *=nullptr) const |
| |
|
auto | resample (SharedImageSet &inputDesc, SharedImageSet &outputDesc, std::enable_if_t< std::is_same_v< T, SharedImageSet > > *=nullptr) const |
| |
| void | tagAndAssignNames (std::unordered_map< ImageMath::internal::TaggingIndex, const void * > &taggedLeaves, std::unordered_map< std::type_index, int > &countPerLeafType, const std::string &prefix) const override |
| | We need to tag leaves and tell unique leaves that they are responsible to define the uniforms and set the shader arguments.
|
| |
| void | getUniformDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const override |
| | Collect uniform/sampler definitions.
|
| |
| void | getVariableDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const override |
| | Collect variable definitions.
|
| |
| int | setArguments (GL::Program &p, const std::vector< int > &indicesIn, const std::string &prefix) const override |
| | Set uniform/sampler arguments.
|
| |
| std::string | evalString (bool tagAndAssign=true) const override |
| | Implementation of GlExprInterface interface.
|
| |
|
ExprInterface & | exprInterface () |
| | Get image descriptor of the wrapped expression.
|
| |
|
const ExprInterface & | exprInterface () const |
| |
| virtual bool | setMagFilter (ImageMath::MagFilter mag) |
| | Set interpolation behaviour of the current leaf (only)
|
| |
| virtual bool | setWrap (ImageMath::Wrap wrap) |
| | Set interpolation behaviour of the current leaf (only)
|
| |
| bool | setMagFilterRecursive (ImageMath::MagFilter mag) |
| | Set interpolation behaviour of the current leaf and all of its children.
|
| |
| bool | setWrapRecursive (ImageMath::Wrap wrap) |
| | Set wrap behaviour of the current leaf and all of its children.
|
| |