怪物描述符行类型

时间:2013-05-21 13:08:05

标签: opencv computer-vision feature-descriptor freak

我有以下代码:

//newImg is a mat of an image and orderedKeyPoint is the result from Fast
cv::FREAK extractor;
cv::Mat queryDescriptors;
extractor.compute(newImg, orderedKeyPoint, queryDescriptors);

我正在尝试使用queryDescriptors.at<来访问各个怪胎描述符。 ???>(r,0)其中r是任意有效行值但我不确定类型。所有文档都声明它只是一个描述符,但是类型为Mat或double或其他类型的描述符?这是最好的方式吗?

cv::Mat descriptor2 = queryDescriptors.at<cv::Mat>(2,0);

我希望能够通过获取它们并将它们放在cv :: Mat的行值中来重构个人描述符中的queryDescriptors(描述符之间),例如:

queryDescriptors.at<cv::Mat>(2,0) = descriptor2;

非常感谢任何帮助或见解,

艾萨克

2 个答案:

答案 0 :(得分:1)

FREAK描述符是一个带有64个cols和numkeypoints行的uchar Mat。

所以,要找到它的一个元素:

uchar elm = descriptor.at<uchar>(row,col);

其中row是关键点id,col是元素id。

答案 1 :(得分:0)

如果您查看\ opencv \ modules \ features2d \ src \ freak.cpp,您可以看到:

int FREAK::descriptorSize() const
{
    return FREAK_NB_PAIRS / 8; // descriptor length in bytes
}

int FREAK::descriptorType() const
{
    return CV_8U;
}

int FREAK::defaultNorm() const
{
    return NORM_HAMMING;
}

} // END NAMESPACE CV

所以uchar似乎是berak已经建议的类型。