ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
CorrespondenceMatching Class Reference

Correspondence Matching. More...

#include <CorrespondenceMatching.h>

Inheritance diagram for CorrespondenceMatching:
Collaboration diagram for CorrespondenceMatching:

Public Member Functions

 CorrespondenceMatching ()
 
virtual ~CorrespondenceMatching ()
 
virtual int compute ()
 Performs the actual filter job. More...
 
- Public Member Functions inherited from BasePclModule
 BasePclModule (PclModuleDescription desc=PclModuleDescription(), ccPluginInterface *parent_plugin=0)
 Default constructor. More...
 
QAction * getAction ()
 Get the action associated with the button used in menu and toolbar creation. More...
 
QString getStatusTip () const
 Returns the status tip. More...
 
QString getModuleName () const
 Returns the name of the filter. More...
 
QString getEntryName () const
 Returns the entry name. More...
 
QIcon getIcon () const
 Returns the icon associated with the button. More...
 
void setShowProgressBar (bool status)
 Sets whether to show a progressbar while computing or not. More...
 
std::vector< std::string > getSelectedAvailableScalarFields ()
 
ccPointCloudgetSelectedEntityAsCCPointCloud () const
 Returns the first selected entity as a ccPointCloud. More...
 
ccHObjectgetSelectedEntityAsCCHObject () const
 Returns the first selected entity as a ccHObject. More...
 
ccHObject::Container getSelectedThatHaveMetaData (const QString key) const
 Get selected object that also have the provided metadata key. More...
 
void getAllEntitiesOfType (CV_CLASS_ENUM type, ccHObject::Container &entities)
 Returns all the objects in db tree of type "type". More...
 
void getAllEntitiesThatHaveMetaData (QString key, ccHObject::Container &entities)
 
void getSelectedEntitiesThatAreCCPointCloud (ccHObject::Container &entities)
 get all entities that are selected and that also are cc_point_cloud More...
 
void getSelectedEntitiesThatAre (CV_CLASS_ENUM kind, ccHObject::Container &entities)
 
int hasSelectedRGB ()
 Returns 1 if the first selected entity has RGB info. More...
 
int hasSelectedScalarField ()
 Returns 1 if the first selected entity has at least one scalar field. More...
 
int hasSelectedScalarField (std::string field_name)
 
int isFirstSelectedCcPointCloud ()
 Returns 1 if the first selected object is a ccPointCloud. More...
 
virtual void updateSelectedEntities (const ccHObject::Container &selectedEntities)
 Updates the internal copy of selected entities. More...
 
void setMainAppInterface (ecvMainAppInterface *app)
 Sets associated CC application interface (to access DB) More...
 
ecvMainAppInterfacegetMainAppInterface ()
 
ccPluginInterfacegetParentPlugin () const
 Returns the associated parent plugin interface. More...
 

Protected Member Functions

virtual int checkSelected ()
 Checks if current selection is compliant with the filter. More...
 
virtual int openInputDialog ()
 
virtual void getParametersFromDialog ()
 Collects parameters from the filter dialog (if openDialog is successful) More...
 
virtual int checkParameters ()
 
virtual QString getErrorMessage (int errorCode)
 Returns the error message corresponding to a given error code. More...
 
void applyTransformation (ccHObject *entity, const ccGLMatrixd &mat)
 
- Protected Member Functions inherited from BasePclModule
virtual int openOutputDialog ()
 
virtual int start ()
 Starts computation. More...
 
virtual void initAction ()
 Initializes the corresponding action. More...
 
void throwError (int errCode)
 

Protected Attributes

ccPointCloudm_sceneCloud
 
CorrespondenceMatchingDialogm_dialog
 
float m_leafSize
 
bool m_useVoxelGrid
 
bool m_gcMode
 
bool m_verification
 
int m_maxThreadCount
 
float m_modelSearchRadius
 
float m_sceneSearchRadius
 
float m_shotDescriptorRadius
 
int m_normalKSearch
 
float m_consensusResolution
 
float m_gcMinClusterSize
 
float m_lrfRadius
 
float m_houghBinSize
 
float m_houghThreshold
 
int m_icpMaxIterations
 
float m_icpCorrDistance
 
float clusterReg = 5.0f
 
float inlierThreshold = 0.005f
 
float occlusionThreshold = 0.01f
 
float radiusClutter = 0.03f
 
float regularizer = 3.0f
 
float radiusNormals = 0.05f
 
bool detectClutter = true
 
std::vector< float > m_scales
 
std::vector< ccPointCloud * > m_modelClouds
 
- Protected Attributes inherited from BasePclModule
QAction * m_action
 Forces the Ui to be updated. More...
 
ccHObject::Container m_selected
 Pointer to the main window. More...
 
PclModuleDescription m_desc
 Associated dialog. More...
 
ecvMainAppInterfacem_app
 Associated application interface. More...
 
ccPluginInterfacem_parent_plugin
 associated parent plugin of the filter More...
 
bool m_show_progress
 Do we want to show a progress bar when the filter works? More...
 

Additional Inherited Members

- Signals inherited from BasePclModule
void entityHasChanged (ccHObject *)
 Signal emitted when an entity is (visually) modified. More...
 
void newEntity (ccHObject *)
 Signal emitted when a new entity is created by the filter. More...
 
void newErrorMessage (QString)
 Signal emitted when a new error message is produced. More...
 
- Protected Slots inherited from BasePclModule
int performAction ()
 Returns is called when the dialog window is accepted. More...
 

Detailed Description

Correspondence Matching.

Definition at line 18 of file CorrespondenceMatching.h.

Constructor & Destructor Documentation

◆ CorrespondenceMatching()

CorrespondenceMatching::CorrespondenceMatching ( )

Definition at line 30 of file CorrespondenceMatching.cpp.

◆ ~CorrespondenceMatching()

CorrespondenceMatching::~CorrespondenceMatching ( )
virtual

Definition at line 53 of file CorrespondenceMatching.cpp.

References m_dialog.

Member Function Documentation

◆ applyTransformation()

void CorrespondenceMatching::applyTransformation ( ccHObject entity,
const ccGLMatrixd mat 
)
protected

◆ checkParameters()

int CorrespondenceMatching::checkParameters ( )
protectedvirtual

Checks that the parameters retrieved by getParametersFromDialog are valid Automatically called by performAction. Does nothing by default. Must be overridden if necessary.

Returns
1 if parameters are valid (error code otherwise)

Reimplemented from BasePclModule.

Definition at line 130 of file CorrespondenceMatching.cpp.

References m_modelClouds, and m_sceneCloud.

◆ checkSelected()

int CorrespondenceMatching::checkSelected ( )
protectedvirtual

Checks if current selection is compliant with the filter.

If not, an error is returned and computation stops. By default, baseclass method simply checks that selection is composed of one and only one ccPointCloud. This method should be overridden if necessary.

Returns
1 if selection is compliant (error code otherwise)

Reimplemented from BasePclModule.

Definition at line 58 of file CorrespondenceMatching.cpp.

References BasePclModule::isFirstSelectedCcPointCloud().

◆ compute()

◆ getErrorMessage()

QString CorrespondenceMatching::getErrorMessage ( int  errorCode)
protectedvirtual

Returns the error message corresponding to a given error code.

Each filter have a set of possible error message to be used given bt getFilterErrorMessage() Baseclass implementation provides some generic messages.

Note
These messages can be replaced by re-implementing this method and handling the same codes BEFORE calling the baseclass method

Reimplemented from BasePclModule.

Definition at line 497 of file CorrespondenceMatching.cpp.

References BasePclModule::getErrorMessage().

◆ getParametersFromDialog()

void CorrespondenceMatching::getParametersFromDialog ( )
protectedvirtual

Collects parameters from the filter dialog (if openDialog is successful)

Automatically called by performAction. Does nothing by default. Must be overridden if necessary.

Reimplemented from BasePclModule.

Definition at line 78 of file CorrespondenceMatching.cpp.

References ecvMainAppInterface::dispToConsole(), ecvMainAppInterface::ERR_CONSOLE_MESSAGE, CorrespondenceMatchingDialog::getEvaluationCloud(), CorrespondenceMatchingDialog::getGcConsensusSetResolution(), CorrespondenceMatchingDialog::getGcMinClusterSize(), CorrespondenceMatchingDialog::getHoughBinSize(), CorrespondenceMatchingDialog::getHoughLRFRadius(), CorrespondenceMatchingDialog::getHoughThreshold(), CorrespondenceMatchingDialog::getMaxThreadCount(), CorrespondenceMatchingDialog::getModelCloudByIndex(), CorrespondenceMatchingDialog::getModelSearchRadius(), CorrespondenceMatchingDialog::getNormalKSearch(), CorrespondenceMatchingDialog::getScales(), CorrespondenceMatchingDialog::getSceneSearchRadius(), CorrespondenceMatchingDialog::getShotDescriptorRadius(), CorrespondenceMatchingDialog::getVerificationFlag(), CorrespondenceMatchingDialog::getVoxelGridLeafSize(), CorrespondenceMatchingDialog::isGCActivated(), BasePclModule::m_app, m_consensusResolution, m_dialog, m_gcMinClusterSize, m_gcMode, m_houghBinSize, m_houghThreshold, m_leafSize, m_lrfRadius, m_maxThreadCount, m_modelClouds, m_modelSearchRadius, m_normalKSearch, m_scales, m_sceneCloud, m_sceneSearchRadius, m_shotDescriptorRadius, m_useVoxelGrid, and m_verification.

◆ openInputDialog()

int CorrespondenceMatching::openInputDialog ( )
protectedvirtual

Opens the input dialog window. Where the user can supply parameters for the computation Automatically called by performAction. Does nothing by default. Must be overridden if a dialog must be displayed.

Returns
1 if dialog has been successfully executed, 0 if canceled, negative error code otherwise

Reimplemented from BasePclModule.

Definition at line 66 of file CorrespondenceMatching.cpp.

References BasePclModule::m_app, m_dialog, CorrespondenceMatchingDialog::refreshCloudComboBox(), and CorrespondenceMatchingDialog::saveParamsToPersistentSettings().

Member Data Documentation

◆ clusterReg

float CorrespondenceMatching::clusterReg = 5.0f
protected

Definition at line 64 of file CorrespondenceMatching.h.

◆ detectClutter

bool CorrespondenceMatching::detectClutter = true
protected

Definition at line 70 of file CorrespondenceMatching.h.

◆ inlierThreshold

float CorrespondenceMatching::inlierThreshold = 0.005f
protected

Definition at line 65 of file CorrespondenceMatching.h.

◆ m_consensusResolution

float CorrespondenceMatching::m_consensusResolution
protected

Definition at line 51 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_dialog

CorrespondenceMatchingDialog* CorrespondenceMatching::m_dialog
protected

◆ m_gcMinClusterSize

float CorrespondenceMatching::m_gcMinClusterSize
protected

Definition at line 52 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_gcMode

bool CorrespondenceMatching::m_gcMode
protected

Definition at line 41 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_houghBinSize

float CorrespondenceMatching::m_houghBinSize
protected

Definition at line 56 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_houghThreshold

float CorrespondenceMatching::m_houghThreshold
protected

Definition at line 57 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_icpCorrDistance

float CorrespondenceMatching::m_icpCorrDistance
protected

Definition at line 61 of file CorrespondenceMatching.h.

Referenced by compute().

◆ m_icpMaxIterations

int CorrespondenceMatching::m_icpMaxIterations
protected

Definition at line 60 of file CorrespondenceMatching.h.

Referenced by compute().

◆ m_leafSize

float CorrespondenceMatching::m_leafSize
protected

Definition at line 39 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_lrfRadius

float CorrespondenceMatching::m_lrfRadius
protected

Definition at line 55 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_maxThreadCount

int CorrespondenceMatching::m_maxThreadCount
protected

Definition at line 43 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_modelClouds

std::vector<ccPointCloud*> CorrespondenceMatching::m_modelClouds
protected

Definition at line 73 of file CorrespondenceMatching.h.

Referenced by checkParameters(), compute(), and getParametersFromDialog().

◆ m_modelSearchRadius

float CorrespondenceMatching::m_modelSearchRadius
protected

Definition at line 45 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_normalKSearch

int CorrespondenceMatching::m_normalKSearch
protected

Definition at line 48 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_scales

std::vector<float> CorrespondenceMatching::m_scales
protected

Definition at line 72 of file CorrespondenceMatching.h.

Referenced by getParametersFromDialog().

◆ m_sceneCloud

ccPointCloud* CorrespondenceMatching::m_sceneCloud
protected

Definition at line 36 of file CorrespondenceMatching.h.

Referenced by checkParameters(), compute(), and getParametersFromDialog().

◆ m_sceneSearchRadius

float CorrespondenceMatching::m_sceneSearchRadius
protected

Definition at line 46 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_shotDescriptorRadius

float CorrespondenceMatching::m_shotDescriptorRadius
protected

Definition at line 47 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_useVoxelGrid

bool CorrespondenceMatching::m_useVoxelGrid
protected

Definition at line 40 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ m_verification

bool CorrespondenceMatching::m_verification
protected

Definition at line 42 of file CorrespondenceMatching.h.

Referenced by compute(), and getParametersFromDialog().

◆ occlusionThreshold

float CorrespondenceMatching::occlusionThreshold = 0.01f
protected

Definition at line 66 of file CorrespondenceMatching.h.

◆ radiusClutter

float CorrespondenceMatching::radiusClutter = 0.03f
protected

Definition at line 67 of file CorrespondenceMatching.h.

◆ radiusNormals

float CorrespondenceMatching::radiusNormals = 0.05f
protected

Definition at line 69 of file CorrespondenceMatching.h.

◆ regularizer

float CorrespondenceMatching::regularizer = 3.0f
protected

Definition at line 68 of file CorrespondenceMatching.h.


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