Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
pcl::AdaptiveCostSOStereoMatching Class Reference

Adaptive Cost 2-pass Scanline Optimization Stereo Matching class. More...

#include <pcl/stereo/stereo_matching.h>

Inheritance diagram for pcl::AdaptiveCostSOStereoMatching:

Public Member Functions

 AdaptiveCostSOStereoMatching ()
 ~AdaptiveCostSOStereoMatching () override=default
void setRadius (int radius)
 setter for the radius (half length) of the column used for cost aggregation
void setGammaS (int gamma_s)
 setter for the spatial bandwidth used for cost aggregation based on adaptive weights
void setGammaC (int gamma_c)
 setter for the color bandwidth used for cost aggregation based on adaptive weights
void setSmoothWeak (int smoothness_weak)
 "weak" smoothness penalty used within 2-pass Scanline Optimization
void setSmoothStrong (int smoothness_strong)
 "strong" smoothness penalty used within 2-pass Scanline Optimization
Public Member Functions inherited from pcl::GrayStereoMatching
 GrayStereoMatching ()
 ~GrayStereoMatching () override
void compute (unsigned char *ref_img, unsigned char *trg_img, int width, int height) override
 stereo processing, it computes a disparity map stored internally by the class
void compute (pcl::PointCloud< pcl::RGB > &ref, pcl::PointCloud< pcl::RGB > &trg) override
 stereo processing, it computes a disparity map stored internally by the class
Public Member Functions inherited from pcl::StereoMatching
 StereoMatching ()
virtual ~StereoMatching ()
void setMaxDisparity (int max_disp)
 setter for number of disparity candidates (disparity range)
void setXOffset (int x_off)
 setter for horizontal offset, i.e.
void setRatioFilter (int ratio_filter)
 setter for the value of the ratio filter
void setPeakFilter (int peak_filter)
 setter for the value of the peak filter
void setPreProcessing (bool is_pre_proc)
 setter for the pre processing step
void setLeftRightCheck (bool is_lr_check)
 setter for the left-right consistency check stage, that eliminates inconsistent/wrong disparity values from the disparity map at approx.
void setLeftRightCheckThreshold (int lr_check_th)
 setter for the left-right consistency check threshold
void medianFilter (int radius)
 median filter applied on the previously computed disparity map
virtual bool getPointCloud (float u_c, float v_c, float focal, float baseline, pcl::PointCloud< pcl::PointXYZ >::Ptr cloud)
 computation of the 3D point cloud from the previously computed disparity map without color information
virtual bool getPointCloud (float u_c, float v_c, float focal, float baseline, pcl::PointCloud< pcl::PointXYZRGB >::Ptr cloud, pcl::PointCloud< pcl::RGB >::Ptr texture)
 computation of the 3D point cloud from the previously computed disparity map including color information
void getVisualMap (pcl::PointCloud< pcl::RGB >::Ptr vMap)
 computation of a pcl::RGB cloud with scaled disparity values it can be used to display a rescaled version of the disparity map by means of the pcl::ImageViewer invalid disparity values are shown in green

Additional Inherited Members

Protected Member Functions inherited from pcl::GrayStereoMatching
void preProcessing (unsigned char *img, unsigned char *pp_img) override
void imgFlip (unsigned char *&img) override
Protected Member Functions inherited from pcl::StereoMatching
void leftRightCheck ()
short int computeStereoSubpixel (int dbest, int s1, int s2, int s3)
short int computeStereoSubpixel (int dbest, float s1, float s2, float s3)
Protected Attributes inherited from pcl::StereoMatching
short int * disp_map_
 The internal disparity map.
unsigned char * ref_img_
 Local aligned copies of the cloud data.
unsigned char * trg_img_
short int * disp_map_trg_
 Disparity map used for left-right check.
unsigned char * pp_ref_img_
 Local aligned copies used for pre processing.
unsigned char * pp_trg_img_
int width_
 number of pixels per column of the input stereo pair .
int height_
 number of pixels per row of the input stereo pair .
int max_disp_
 Disparity range used for stereo processing.
int x_off_
 Horizontal displacemente (x offset) used for stereo processing.
int ratio_filter_
 Threshold for the ratio filter, $\in [0 100]$.
int peak_filter_
 Threshold for the peak filter, $\in [0 \infty]$.
bool is_pre_proc_
 toggle for the activation of the pre-processing stage
bool is_lr_check_
 toggle for the activation of the left-right consistency check stage
int lr_check_th_
 Threshold for the left-right consistency check, typically either 0 or 1.

Detailed Description

Adaptive Cost 2-pass Scanline Optimization Stereo Matching class.

This class implements an adaptive-cost stereo matching algorithm based on 2-pass Scanline Optimization. The algorithm is inspired by the paper: [1] L. Wang et al., "High Quality Real-time Stereo using Adaptive Cost Aggregation and Dynamic Programming", 3DPVT 2006 Cost aggregation is performed using adaptive weights computed on a single column as proposed in [1]. Instead of using Dynamic Programming as in [1], the optimization is performed via 2-pass Scanline Optimization. The algorithm is based on the Sum of Absolute Differences (SAD) matching function Only works with grayscale (single channel) rectified images

Author
Federico Tombari (feder.nosp@m.ico..nosp@m.tomba.nosp@m.ri@u.nosp@m.nibo..nosp@m.it)

Definition at line 464 of file stereo_matching.h.

Constructor & Destructor Documentation

◆ AdaptiveCostSOStereoMatching()

pcl::AdaptiveCostSOStereoMatching::AdaptiveCostSOStereoMatching ( )

◆ ~AdaptiveCostSOStereoMatching()

pcl::AdaptiveCostSOStereoMatching::~AdaptiveCostSOStereoMatching ( )
overridedefault

Member Function Documentation

◆ setGammaC()

void pcl::AdaptiveCostSOStereoMatching::setGammaC ( int gamma_c)
inline

setter for the color bandwidth used for cost aggregation based on adaptive weights

Parameters
[in]gamma_ccolor bandwidth used for cost aggregation based on adaptive weights

Definition at line 497 of file stereo_matching.h.

◆ setGammaS()

void pcl::AdaptiveCostSOStereoMatching::setGammaS ( int gamma_s)
inline

setter for the spatial bandwidth used for cost aggregation based on adaptive weights

Parameters
[in]gamma_sspatial bandwidth used for cost aggregation based on adaptive weights

Definition at line 486 of file stereo_matching.h.

◆ setRadius()

void pcl::AdaptiveCostSOStereoMatching::setRadius ( int radius)
inline

setter for the radius (half length) of the column used for cost aggregation

Parameters
[in]radiusradius (half length) of the column used for cost aggregation; the total column length is equal to 2*radius + 1

Definition at line 475 of file stereo_matching.h.

◆ setSmoothStrong()

void pcl::AdaptiveCostSOStereoMatching::setSmoothStrong ( int smoothness_strong)
inline

"strong" smoothness penalty used within 2-pass Scanline Optimization

Parameters
[in]smoothness_strong"strong" smoothness penalty cost

Definition at line 515 of file stereo_matching.h.

◆ setSmoothWeak()

void pcl::AdaptiveCostSOStereoMatching::setSmoothWeak ( int smoothness_weak)
inline

"weak" smoothness penalty used within 2-pass Scanline Optimization

Parameters
[in]smoothness_weak"weak" smoothness penalty cost

Definition at line 506 of file stereo_matching.h.


The documentation for this class was generated from the following file: