Point Cloud Library (PCL) 1.12.0
|
#include <pcl/2d/edge.h>
Public Types | |
enum | OUTPUT_TYPE { OUTPUT_Y , OUTPUT_X , OUTPUT_X_Y , OUTPUT_MAGNITUDE , OUTPUT_DIRECTION , OUTPUT_MAGNITUDE_DIRECTION , OUTPUT_ALL } |
enum | DETECTOR_KERNEL_TYPE { CANNY , SOBEL , PREWITT , ROBERTS , LOG , DERIVATIVE_CENTRAL , DERIVATIVE_FORWARD , DERIVATIVE_BACKWARD } |
using | Ptr = shared_ptr<Edge<PointInT, PointOutT>> |
using | ConstPtr = shared_ptr<const Edge<PointInT, PointOutT>> |
Override function to implement the pcl::Filter interface.
void pcl::Edge< PointInT, PointOutT >::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.
All edges of magnitude above t_high are always classified as edges. All edges below t_low are discarded. Edge values between t_low and t_high are classified as edges only if they are connected to edges having magnitude > t_high and are located in a direction perpendicular to that strong edge.
[in] | input_x | Input point cloud passed by reference for the first derivative in the horizontal direction |
[in] | input_y | Input point cloud passed by reference for the first derivative in the vertical direction |
[out] | output | Output point cloud passed by reference |
Definition at line 376 of file edge.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::makeShared(), pcl::PointCloud< PointT >::resize(), and pcl::PointCloud< PointT >::width.
void pcl::Edge< PointInT, PointOutT >::computeDerivativeXBackward | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in X direction using the kernel kernel::derivativeXBackwardKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
output | Output point cloud passed by reference |
void pcl::Edge< PointInT, PointOutT >::computeDerivativeXCentral | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in X direction using the kernel kernel::derivativeYCentralKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
void pcl::Edge< PointInT, PointOutT >::computeDerivativeXForward | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in X direction using the kernel kernel::derivativeYForwardKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
void pcl::Edge< PointInT, PointOutT >::computeDerivativeYBackward | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in Y direction using the kernel kernel::derivativeYBackwardKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
void pcl::Edge< PointInT, PointOutT >::computeDerivativeYCentral | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in Y direction using the kernel kernel::derivativeYCentralKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
void pcl::Edge< PointInT, PointOutT >::computeDerivativeYForward | ( | pcl::PointCloud< PointOutT > & | output | ) |
Computes the image derivatives in Y direction using the kernel kernel::derivativeYForwardKernel.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
This is a convenience function which performs edge detection based on the variable detector_kernel_type_.
[out] | output |
All edges of magnitude above t_high are always classified as edges.
All edges below t_low are discarded. Edge values between t_low and t_high are classified as edges only if they are connected to edges having magnitude > t_high and are located in a direction perpendicular to that strong edge.
[out] | output | Output point cloud passed by reference |
Definition at line 312 of file edge.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::resize(), and pcl::PointCloud< PointT >::width.
void pcl::Edge< PointInT, PointOutT >::detectEdgeLoG | ( | const float | kernel_sigma, |
const float | kernel_size, | ||
pcl::PointCloud< PointOutT > & | output ) |
Uses the LoG kernel for edge detection.
Zero crossings of the Laplacian operator applied on an image indicate edges. Gaussian kernel is used to smoothen the image prior to the Laplacian. This is because Laplacian uses the second order derivative of the image and hence, is very sensitive to noise. The implementation is not two-step but rather applies the LoG kernel directly.
[in] | kernel_sigma | variance of the LoG kernel used. |
[in] | kernel_size | a LoG kernel of dimensions kernel_size x kernel_size is used. |
[out] | output | Output point cloud passed by reference. |
Uses the Prewitt kernel for edge detection.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
Definition at line 126 of file edge.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size(), and pcl::PointCloud< PointT >::width.
Uses the Sobel kernel for edge detection.
This function does NOT include a smoothing step. The image should be smoothed before using this function to reduce noise.
[out] | output | Output point cloud passed by reference |
Definition at line 48 of file edge.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size(), and pcl::PointCloud< PointT >::width.
|
inline |
void pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection | ( | const pcl::PointCloud< PointInT > & | input_x, |
const pcl::PointCloud< PointInT > & | input_y, | ||
pcl::PointCloud< PointOutT > & | output ) |
[in] | input_x | |
[in] | input_y | |
[out] | output |
Definition at line 85 of file edge.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::makeShared(), pcl::PointCloud< PointT >::resize(), pcl::PointCloud< PointT >::size(), and pcl::PointCloud< PointT >::width.