80 lines
1.6 KiB
C
80 lines
1.6 KiB
C
|
/**
|
||
|
* File: FORB.h
|
||
|
* Date: June 2012
|
||
|
* Author: Dorian Galvez-Lopez
|
||
|
* Description: functions for ORB descriptors
|
||
|
* License: see the LICENSE.txt file
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef __D_T_F_ORB__
|
||
|
#define __D_T_F_ORB__
|
||
|
|
||
|
#include <opencv2/core/core.hpp>
|
||
|
#include <vector>
|
||
|
#include <string>
|
||
|
|
||
|
#include "FClass.h"
|
||
|
|
||
|
namespace DBoW2 {
|
||
|
|
||
|
/// Functions to manipulate ORB descriptors
|
||
|
class FORB: protected FClass
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
/// Descriptor type
|
||
|
typedef cv::Mat TDescriptor; // CV_8U
|
||
|
/// Pointer to a single descriptor
|
||
|
typedef const TDescriptor *pDescriptor;
|
||
|
/// Descriptor length (in bytes)
|
||
|
static const int L;
|
||
|
|
||
|
/**
|
||
|
* Calculates the mean value of a set of descriptors
|
||
|
* @param descriptors
|
||
|
* @param mean mean descriptor
|
||
|
*/
|
||
|
static void meanValue(const std::vector<pDescriptor> &descriptors,
|
||
|
TDescriptor &mean);
|
||
|
|
||
|
/**
|
||
|
* Calculates the distance between two descriptors
|
||
|
* @param a
|
||
|
* @param b
|
||
|
* @return distance
|
||
|
*/
|
||
|
static int distance(const TDescriptor &a, const TDescriptor &b);
|
||
|
|
||
|
/**
|
||
|
* Returns a string version of the descriptor
|
||
|
* @param a descriptor
|
||
|
* @return string version
|
||
|
*/
|
||
|
static std::string toString(const TDescriptor &a);
|
||
|
|
||
|
/**
|
||
|
* Returns a descriptor from a string
|
||
|
* @param a descriptor
|
||
|
* @param s string version
|
||
|
*/
|
||
|
static void fromString(TDescriptor &a, const std::string &s);
|
||
|
|
||
|
/**
|
||
|
* Returns a mat with the descriptors in float format
|
||
|
* @param descriptors
|
||
|
* @param mat (out) NxL 32F matrix
|
||
|
*/
|
||
|
static void toMat32F(const std::vector<TDescriptor> &descriptors,
|
||
|
cv::Mat &mat);
|
||
|
|
||
|
static void toMat8U(const std::vector<TDescriptor> &descriptors,
|
||
|
cv::Mat &mat);
|
||
|
|
||
|
};
|
||
|
|
||
|
} // namespace DBoW2
|
||
|
|
||
|
#endif
|
||
|
|