3dpcp/include/slam6d/fbr/feature.h

74 lines
2.5 KiB
C
Raw Normal View History

2012-09-16 12:33:11 +00:00
/**
* @file feature.h
* @brief detects features on images and create the descriptor for them
* @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany.
* @date Date: 2012/5/24/ 2:00
*/
#ifndef FEATURE_H_
#define FEATURE_H_
#include "fbr_global.h"
using namespace std;
namespace fbr{
/**
* @class feature
* @brief class to detect and describe features
* @param fDetectorMethod feature_detector_method
* @param fDescriptorMethod feature_descriptor_method
* @param keypoints vector containing the detected features
* @param descriptors cv::Mat containig the descriptor of features
*/
class feature{
feature_detector_method fDetectorMethod;
feature_descriptor_method fDescriptorMethod;
2012-10-15 17:05:06 +00:00
feature_filtration_method fFiltrationMethod;
2012-09-16 12:33:11 +00:00
vector<cv::KeyPoint> keypoints;
cv::Mat descriptors;
enum description_method{
FEATURE_DESCRIPTION,
DESCRIPTOR_DESCRIPTION,
ALL,
};
2012-10-15 17:05:06 +00:00
void featureFiltration(cv::Mat pImage, cv::Mat rImage);
2012-09-16 12:33:11 +00:00
public:
/**
* constructor of feature class
*/
feature();
2012-10-15 17:05:06 +00:00
feature(feature_detector_method detector, feature_descriptor_method descriptor, feature_filtration_method filtration);
/**
* featureDetection : creates the features
* @param pImage cv::Mat refletance panorama image
* @param method feature_detector_method
* @param rImage cv::Mat range image for filtration
* @param fMethod feature_filtration_method
**/
void featureDetection(cv::Mat pImage, feature_detector_method method, cv::Mat rImage, feature_filtration_method fMethod);
2012-09-16 12:33:11 +00:00
void featureDetection(cv::Mat pImage, feature_detector_method method);
void featureDetection(cv::Mat pImage);
2012-10-15 17:05:06 +00:00
/**
* featureDescription : creates descriptor of detected features
* @param pImage cv::Mat reflectance panorama image
* @param method feature_descriptor_method
**/
2012-09-16 12:33:11 +00:00
void featureDescription(cv::Mat pImage, feature_descriptor_method method);
void featureDescription(cv::Mat pImage);
2012-10-15 17:05:06 +00:00
/**
* all sets of getters for the class
*/
2012-09-16 12:33:11 +00:00
feature_detector_method getDetectorMethod();
feature_descriptor_method getDescriptorMethod();
2012-10-15 17:05:06 +00:00
feature_filtration_method getFeatureFiltrationMethod();
2012-09-16 12:33:11 +00:00
vector<cv::KeyPoint> getFeatures();
cv::Mat getDescriptors();
2012-10-15 17:05:06 +00:00
void setFeatures(vector<cv::KeyPoint> keypoint);
void setDescriptors(cv::Mat descriptor);
2012-09-16 12:33:11 +00:00
void getDescription(description_method method=ALL);
unsigned int getNumberOfFeatures();
};
}
#endif /* FEATURE_H_ */