gpt4 book ai didi

java - Android-HOG描述符距离

转载 作者:行者123 更新时间:2023-12-01 10:52:33 25 4
gpt4 key购买 nike

我想使用 OpenCV 在 Android 应用程序中比较 2 个 HOG 描述符。我发现计算两个类型为 MatOfFloat 的 vector 之间的欧几里得距离很困难。您有可以帮助我的代码示例吗?

计算HOG描述符的函数是mHOGDescriptor.compute(imgMat,descriptors,winStride,padding,locations);该函数的输出是其类型为 MatOfFloat 的描述符。一旦我找到 2 个图像的 HOG 描述符,我想计算它与我发现问题的地方之间的欧几里德距离。

我尝试了这段代码,但不起作用:

for(int i=0; i<imgMat.rows();i++)
{
for(int j=0; j<imgMat.cols();j++)
{
distance1=(int) (distance1+(mDescriptors1.get(i, j)-mDescriptors2.get(i, j)));
}
}

最佳答案

我发现您的代码存在两个问题:

  1. 这不是正确的欧氏距离公式
  2. 在每次迭代时都转换为 int。这不是一个好主意,因为描述符的值是 float 且小于 1(它由标准化直方图组成),因此您将距离舍入为零。

尝试以下代码:

distance=0;
for(int i=0; i<imgMat.rows();i++)
{
for(int j=0; j<imgMat.cols();j++)
{
distance+=(mDescriptors1.get(i, j)[0]-mDescriptors2.get(i, j)[0])*(mDescriptors1.get(i, j)[0]-mDescriptors2.get(i, j)[0]);
}
}

关于java - Android-HOG描述符距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33762179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com