【发布时间】:2014-04-25 17:39:18
【问题描述】:
如何在 OpenCV 中创建可与 OpenCV 中的 DescriptorMatchers 之一一起使用的描述符,方法如下。
cv::BFMatcher matcher( cv::NORM_L2, false );
std::vector< cv::DMatch > matches;
matcher.match( descriptors_1, descriptors_2, matches );
我已经有以下描述符类。如何转换或创建可与 DescriptorMatcher 一起使用的新矩阵。最好是BFMatcher。
class Descriptor
{
public:
float lxi, lyi; // Location of descriptor
vector<double> feature;
Descriptor()
{
}
Descriptor(float x, float y, vector<double> const& f)
{
lxi = x;
lyi = y;
feature = f;
}
};
【问题讨论】:
-
opencv 的描述符是 1d float(SIFT/SURF) 或 uchar(ORB;BRIEF,etc) Mat 的。所以你的 Descriptor 类和你的 vector
都不会工作 -
我可以放弃我的 Descriptor 类。有没有办法通过我的代码创建一个新的描述符矩阵?我找不到有关矩阵结构或形式的任何信息。
-
不知道如何创建(自定义?)描述符,但您可以创建一个 Mat 和 push_back() 值(就像使用向量一样)
-
我将特征中的 128 个特征和每个描述符中 128 个特征的关键点的 x,y 推送到其他描述符的数组中。
-
我也想知道这个问题的答案,没有关于如何创建自定义描述符的文档。
标签: c++ c opencv image-processing feature-descriptor