gpt4 book ai didi

java - 标准化图像描述符 OpenCV Java

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:11 27 4
gpt4 key购买 nike

您好,我将在 OpenCV Java 中实现 Opencv BOW 算法。我试图将大部分代码转换为 java。但是我被困在这里,因为我不明白这里到底发生了什么。

void BOWImgDescriptorExtractor::compute( InputArray keypointDescriptors, OutputArray _imgDescriptor, std::vector<std::vector<int> >* pointIdxsOfClusters )
{
int clusterCount = descriptorSize(); // = vocabulary.rows

// Match keypoint descriptors to cluster center (to vocabulary)
std::vector<DMatch> matches;
dmatcher->match( keypointDescriptors, matches );

// Compute image descriptor
if( pointIdxsOfClusters )
{
pointIdxsOfClusters->clear();
pointIdxsOfClusters->resize(clusterCount);
}

_imgDescriptor.create(1, clusterCount, descriptorType());
_imgDescriptor.setTo(Scalar::all(0));

Mat imgDescriptor = _imgDescriptor.getMat();

float *dptr = imgDescriptor.ptr<float>();
for( size_t i = 0; i < matches.size(); i++ )
{
int queryIdx = matches[i].queryIdx;
int trainIdx = matches[i].trainIdx; // cluster index
CV_Assert( queryIdx == (int)i );

dptr[trainIdx] = dptr[trainIdx] + 1.f;
if( pointIdxsOfClusters )
(*pointIdxsOfClusters)[trainIdx].push_back( queryIdx );
}

// Normalize image descriptor.
imgDescriptor /= keypointDescriptors.size().height;
}

在最后一行它说,规范化描述符。我想知道如何在 java 中实现该部分。任何帮助,将不胜感激。

最佳答案

我试过像你一样做,但它对我来说效果不佳,所以我构建了 opencv2.9 和 bow trainer fonctionnality,它工作得很好而且我有 96℅ 的精度

关于java - 标准化图像描述符 OpenCV Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636290/

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