PCL
|
Discrete two-dimensional separable convolution in the spatial domain. More...
#include <SeparableConvolution.h>
Public Types | |
using | coefficient = SeparableFilter::coefficient |
using | coefficient_vector = SeparableFilter::coefficient_vector |
Static Public Member Functions | |
static constexpr int | FasterThanNonseparableFilterSize (int numThreads) |
Protected Member Functions | |
void | Apply (pcl::DImage &) const override |
void | Apply (pcl::Image &) const override |
void | Apply (pcl::UInt16Image &) const override |
void | Apply (pcl::UInt32Image &) const override |
void | Apply (pcl::UInt8Image &) const override |
![]() | |
virtual void | Apply (pcl::ComplexImage &image) const |
virtual void | Apply (pcl::DComplexImage &image) const |
SeparableConvolution implements a fully multithreaded, two-dimensional discrete separable convolution algorithm. It performs automatic fixing of border artifacts by applying Neumann boundary conditions (mirroring).
Definition at line 82 of file SeparableConvolution.h.
Represents a filter coefficient.
Definition at line 90 of file SeparableConvolution.h.
Represents a one-dimensional filter.
Definition at line 95 of file SeparableConvolution.h.
|
default |
Default constructor.
|
inline |
Constructs a SeparableConvolution object with the specified filter.
filter | Response function, or convolution filter. The specified object does not have to remain valid while this instance is actively used, since SeparableConvolution owns a private copy of the separable filter (note that SeparableFilter is a reference-counted class). |
Definition at line 114 of file SeparableConvolution.h.
|
inline |
Copy constructor.
Definition at line 122 of file SeparableConvolution.h.
|
default |
Move constructor.
|
inlineoverride |
Destroys a SeparableConvolution object.
Definition at line 144 of file SeparableConvolution.h.
|
overrideprotectedvirtual |
Applies this transformation to a 64-bit floating point image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 32-bit floating point image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 16-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to a 32-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
|
overrideprotectedvirtual |
Applies this transformation to an 8-bit unsigned integer image.
Reimplemented from pcl::ImageTransformation.
|
inline |
Disables (or enables) convolution of pixel columns.
This is a convenience function, equivalent to: EnableColumnConvolution( !disable )
Definition at line 381 of file SeparableConvolution.h.
|
inline |
Disables (or enables) high-pass rescaling of out-of-range convolved pixel values. See the documentation for IsHighPassRescalingEnabled() for more information.
Definition at line 294 of file SeparableConvolution.h.
|
inline |
Disables (or enables) raw high-pass convolution. See the documentation for IsRawHighPassEnabled() for more information.
Definition at line 327 of file SeparableConvolution.h.
|
inline |
Disables (or enables) convolution of pixel rows.
This is a convenience function, equivalent to: EnableRowConvolution( !disable )
Definition at line 354 of file SeparableConvolution.h.
|
inline |
Enables (or disables) convolution of pixel columns.
Definition at line 370 of file SeparableConvolution.h.
|
inline |
Enables (or disables) high-pass rescaling of out-of-range convolved pixel values. See the documentation for IsHighPassRescalingEnabled() for more information.
Definition at line 284 of file SeparableConvolution.h.
|
inline |
Enables (or disables) raw high-pass convolution. See the documentation for IsRawHighPassEnabled() for more information.
Definition at line 318 of file SeparableConvolution.h.
|
inline |
Enables (or disables) convolution of pixel rows.
Definition at line 343 of file SeparableConvolution.h.
|
inline |
Returns a constant reference to the separable filter currently associated with this SeparableConvolution object.
Definition at line 183 of file SeparableConvolution.h.
|
inline |
Returns a copy of the internal one-dimensional filter vector corresponding to the specified phase. If phase is zero, a copy of the row filter vector is returned; otherwise a copy of the column filter vector is returned.
Definition at line 198 of file SeparableConvolution.h.
|
inline |
Returns a copy of the internal one-dimensional filter vector corresponding to the specified phase, with components converted to the scalar type T. If phase is zero, a copy of the row filter vector is returned; otherwise a copy of the column filter vector is returned.
Definition at line 211 of file SeparableConvolution.h.
|
inline |
Returns the current filter weight. The filter weight is computed each time a separable filter is associated with this object. It is only applied for low-pass filters as a normalization factor. For more information, see the documentation for SeparableFilter::Weight().
The filter weight and other filter properties are cached in private data members for quick reference.
Definition at line 235 of file SeparableConvolution.h.
|
inline |
Returns true iff this object will convolve pixel columns on target images.
Definition at line 362 of file SeparableConvolution.h.
|
inline |
Returns true if the separable filter currently associated with this SeparableConvolution object is a high-pass filter; false if it is a low-pass filter. For more information, see the documentation for SeparableFilter::IsHighPassFilter().
Each time a separable filter is associated with this object, its high-pass nature is checked and stored, along with other filter properties, in private data members. This allows for quick lookup of critical filter characteristics without degrading performance.
Definition at line 251 of file SeparableConvolution.h.
|
inline |
Returns true iff out-of-range values will be rescaled for normalization of images after convolution with a high-pass filter.
A high-pass filter has negative coefficients. As a result, some pixels in the convolved image may have negative values. Saturated pixels (values above one) can also result, depending on the filter coefficients. The standard behavior is to truncate out-of-range pixel values to the [0,1] range, which preserves the dynamics of the convolved image, so high-pass rescaling is disabled by default. When high-pass rescaling is enabled, the resulting image is normalized (that is, rescaled to [0,1] only if there are out-of-range values) and hence all the data after convolution are preserved at the cost of reducing the overall contrast of the image. Finally, if raw high-pass convolution has been enabled, out-of-range values are neither truncated nor rescaled irrespective of the value returned by this function. See the documentation for IsRawHighPassEnabled() for more information.
Definition at line 274 of file SeparableConvolution.h.
|
inline |
Returns true iff raw high-pass convolution is enabled. When raw high-pass convolution is enabled, out-of-range values after convolution with a high-pass filter are neither truncated nor normalized. Note that this is only relevant to convolution of floating point data.
Raw high-pass convolution is disabled by default. For more information on out-of-range convolution results, refer to the documentation for IsHighPassRescalingEnabled().
Definition at line 309 of file SeparableConvolution.h.
|
inline |
Returns true iff this object will convolve pixel rows on target images.
Definition at line 335 of file SeparableConvolution.h.
|
inline |
Copy assignment operator. Returns a reference to this object.
Definition at line 151 of file SeparableConvolution.h.
|
default |
Move assignment operator. Returns a reference to this object.
|
inline |
Returns the length in pixels of the overlapping regions between adjacent areas processed by parallel execution threads. The overlapping distance is a function of the filter size and the interlacing distance.
Definition at line 391 of file SeparableConvolution.h.
|
inline |
Sets a new filter to be applied by this SeparableConvolution object.
Definition at line 220 of file SeparableConvolution.h.
References pcl::SeparableFilter::Clone().