59 using Pointer = std::shared_ptr<IntegralTexture>;
108 [[nodiscard]] auto
clampMax() const -> std::uint16_t;
183 std::uint16_t
clampMax_{std::numeric_limits<uint16_t>::max()};
Base class for neighborhood generating classes.
std::shared_ptr< NeighborhoodGenerator > Pointer
Generate a Texture by taking the discrete integral (summation) of the neighborhood adjacent to a poin...
IntegralTexture(IntegralTexture &)=default
void setLinearWeightDirection(LinearWeightDirection w)
Set the linear weight direction.
auto apply_weights_(NDArray< double > &n) -> NDArray< double >
auto weightMethod() const -> WeightMethod
Set the weighting method.
NDArray< double > linearWeights_
void setClampMax(std::uint16_t m)
The maximum intensity value allowed in neighborhood prior to integration.
ExpoDiffBaseMethod
Exponential difference base calculation method.
double expoDiffManualBase_
std::shared_ptr< IntegralTexture > Pointer
void setExponentialDiffBaseMethod(ExpoDiffBaseMethod m)
Set the method used to calculate the Exponential Difference base value.
auto operator=(const IntegralTexture &) -> IntegralTexture &=default
auto expodiff_intersection_pts_() -> std::vector< std::uint16_t >
void setExponentialDiffExponent(int e)
Set the weighting exponent used by Exponential Difference weighting.
void setup_linear_weights_()
auto apply_linear_weights_(NDArray< double > &n) -> NDArray< double >
auto exponentialDiffBaseValue() const -> double
Set the base value for Exponential Difference weighting.
static auto New() -> Pointer
IntegralTexture()=default
auto expodiff_mean_base_() -> double
NeighborhoodGenerator::Pointer gen_
void setup_expodiff_weights_()
void setGenerator(NeighborhoodGenerator::Pointer g)
Set the Neighborhood generator.
auto exponentialDiffSuppressBelowBase() const -> bool
When enabled, do not integrate intensity values below the base value.
~IntegralTexture() override=default
WeightMethod
Weighting Methods.
auto operator=(IntegralTexture &&) -> IntegralTexture &=default
ExpoDiffBaseMethod expoDiffBaseMethod_
auto compute() -> Texture override
Compute the Texture.
auto clampMax() const -> std::uint16_t
The maximum intensity value allowed in neighborhood prior to integration.
void setExponentialDiffBaseValue(double b)
Set the base value for Exponential Difference weighting.
auto exponentialDiffExponent() const -> int
Set the weighting exponent used by Exponential Difference weighting.
void setExponentialDiffSuppressBelowBase(bool b)
When enabled, do not integrate intensity values below the base value.
LinearWeightDirection
Linear weight direction.
void setWeightMethod(WeightMethod w)
Set the weighting method.
void setClampValuesToMax(bool b)
When enabled, clamp neighborhood intensities to the value specified by setClampMax()
auto clampValuesToMax() const -> bool
When enabled, clamp neighborhood intensities to the value specified by setClampMax()
LinearWeightDirection linearWeight_
IntegralTexture(IntegralTexture &&)=default
auto linearWeightDirection() const -> LinearWeightDirection
Set the linear weight direction.
auto expodiff_mode_base_() -> double
auto exponentialDiffBaseMethod() const -> ExpoDiffBaseMethod
Set the method used to calculate the Exponential Difference base value.
auto apply_expodiff_weights_(NDArray< double > &n) const -> NDArray< double >
std::vector< cv::Mat > Texture
Texturing and parameterization algorithms and utilities library.
@ Positive
Only consider data in the positive normal direction.
@ Negative
Only consider data in the negative normal direction.