c++ - 计算两个描述符之间的距离

标签 c++ opencv euclidean-distance hamming-distance feature-descriptor

我正在尝试计算两个已计算的描述符之间的距离(欧几里德或汉明)。问题是我不想使用匹配器,我只想计算两个描述符之间的距离。 我使用的是 OpenCV 2.4.9,我的描述符存储在 Mat 类型中:

Mat descriptors1;
Mat descriptors2; 

现在我只想计算描述符 1 的第 1 行和描述符 2 的第 1 行之间的距离(最好是汉明距离,因为我使用的是二进制描述符)。

我曾尝试使用 bitwise_xor() 函数,但我没有找到一种有效的位计数方法。有没有函数可以计算两个数组之间的汉明距离?

我注意到我对 OpenCV 还很陌生,但我很感激任何帮助。谢谢

最佳答案

你可以使用opencv的norm功能。

Mat descriptors1;
Mat descriptors2; 

double dist_l2  = norm(descriptors1,descriptors2,NORM_L2);      // l2 for surf,sift
double dist_ham = norm(descriptors1,descriptors2,NORM_HAMMING); // for ORB,BRIEF,etc.

关于c++ - 计算两个描述符之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26326252/

相关文章:

c++ - 编译 RtMidi - Qt 项目、mingw

c++ - 在 C++ 中使用构造函数+继承进行类到类的转换

python - 如何在Python OpenCV中计算两个ndarray之间的欧式距离

c++ - 在 Qt 中将十六进制字符串转换为 Ascii

c++ - 计算梯度方向

OpenCV计算图像坐标的视差

python - 安装 python 模块 ImportError (dlib, imutils) raspberry pi

java - 使用欧几里德距离进行数字分类

python - 如何找到两个坐标矩阵之间最接近的对应向量?

C++ 最近的转换错误