40 #include <pcl/2d/convolution.h>
41 #include <pcl/2d/kernel.h>
43 #include <pcl/pcl_base.h>
48 template <
typename Po
intInT,
typename Po
intOutT>
54 PointCloudInPtr input_;
68 cannyTraceEdge(
int rowOffset,
92 using Ptr = shared_ptr<Edge<PointInT, PointOutT>>;
93 using ConstPtr = shared_ptr<const Edge<PointInT, PointOutT>>;
119 bool non_maximal_suppression_{
false};
120 bool hysteresis_thresholding_{
false};
122 float hysteresis_threshold_low_{20.0f};
123 float hysteresis_threshold_high_{80.0f};
124 float non_max_suppression_radius_x_{3.0f};
125 float non_max_suppression_radius_y_{3.0f};
136 output_type_ = output_type;
142 hysteresis_threshold_low_ = threshold;
148 hysteresis_threshold_high_ = threshold;
235 const float kernel_size,
305 #include <pcl/2d/impl/edge.hpp>
void setHysteresisThresholdHigh(float threshold)
void setOutputType(OUTPUT_TYPE output_type)
Set the output type.
void computeDerivativeYForward(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in Y direction using the kernel kernel::derivativeYForwardKernel.
void detectEdge(pcl::PointCloud< PointOutT > &output)
This is a convenience function which performs edge detection based on the variable detector_kernel_ty...
void applyFilter(pcl::PointCloud< PointOutT > &)
Override function to implement the pcl::Filter interface.
void computeDerivativeYBackward(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in Y direction using the kernel kernel::derivativeYBackwardKernel.
void detectEdgePrewitt(pcl::PointCloud< PointOutT > &output)
Uses the Prewitt kernel for edge detection.
void computeDerivativeXForward(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in X direction using the kernel kernel::derivativeYForwardKernel.
void detectEdgeLoG(const float kernel_sigma, const float kernel_size, pcl::PointCloud< PointOutT > &output)
Uses the LoG kernel for edge detection.
void detectEdgeSobel(pcl::PointCloud< PointOutT > &output)
Uses the Sobel kernel for edge detection.
void canny(const pcl::PointCloud< PointInT > &input_x, const pcl::PointCloud< PointInT > &input_y, pcl::PointCloud< PointOutT > &output)
Perform Canny edge detection with two separated input images for horizontal and vertical derivatives.
@ OUTPUT_MAGNITUDE_DIRECTION
void sobelMagnitudeDirection(const pcl::PointCloud< PointInT > &input_x, const pcl::PointCloud< PointInT > &input_y, pcl::PointCloud< PointOutT > &output)
void detectEdgeRoberts(pcl::PointCloud< PointOutT > &output)
Uses the Roberts kernel for edge detection.
void computeDerivativeXBackward(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in X direction using the kernel kernel::derivativeXBackwardKernel.
void computeDerivativeXCentral(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in X direction using the kernel kernel::derivativeYCentralKernel.
void detectEdgeCanny(pcl::PointCloud< PointOutT > &output)
All edges of magnitude above t_high are always classified as edges.
void computeDerivativeYCentral(pcl::PointCloud< PointOutT > &output)
Computes the image derivatives in Y direction using the kernel kernel::derivativeYCentralKernel.
void setHysteresisThresholdLow(float threshold)
shared_ptr< const Edge< PointInT, PointOutT > > ConstPtr
shared_ptr< Edge< PointInT, PointOutT > > Ptr
void setInputCloud(PointCloudInPtr input)
Set the input point cloud pointer.
shared_ptr< PointCloud< PointInT > > Ptr
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Defines functions, macros and traits for allocating and using memory.
Defines all the PCL and non-PCL macros used.