gpt4 book ai didi

c# - KNN 计算的图像中的绘图匹配对和 Features2DToolbox.DrawMatches 中的潜在错误

转载 作者:太空狗 更新时间:2023-10-29 20:41:58 26 4
gpt4 key购买 nike

我写了一段代码,它通过 KNN 算法找到 K 个最接近的匹配项。在获得 matMatch 和 matchIndices 之后,我尝试在两个结果帧之间绘制匹配对。

我将 ma​​tMaskma​​tchIndices 送入函数 Features2DToolbox.DrawMatches :

Image<Bgr, byte> imResult = Features2DToolbox.DrawMatches(imModelCurr, imModel.keyPoints, imObserPrev,imObser.keyPoints, **matchIndices**, new Bgr(System.Drawing.Color.Yellow), new Bgr(System.Drawing.Color.Red), **matMask**, Features2DToolbox.KeypointDrawType.NOT_DRAW_SINGLE_POINTS);

http://www.emgu.com/wiki/files/2.4.0/document/html/e92d37e6-fe4a-ad09-9304-cd2d2533bfa8.htm但我注意到它给了我匹配对之间的错误绘图:

enter image description here

然后我尝试自己实现这样的功能:

 for (int i = 0; i < matMask.Rows; ++i)
{
if (**matMask[i, 0]** > 0)
{
int indForCurrFrm = **matchIndices[i, 0]**;
int indForPrevFrm = i;

//for frame i-1
PointF fromFirstFrame = getImgObserved(keyPoints[indForPrevFrm]);

//for frame i
PointF NextCorrespondingMatchedFrame = getImModelXY(keyPoints[indForCurrFrm]);

imColorPrv2.Draw(new CircleF(fromFirstFrame, 5), new Bgr(mtchColor), 3);// for frame i-1
imColorShow.Draw(new CircleF(NextCorrespondingMatchedFrame, 5), new Bgr(mtchColor), 3); // for frame i

// draw line on my own matching
imResult.Draw(new LineSegment2DF(fromFirstFrame,NextCorrespondingMatchedFrame),new Bgr(System.Drawing.Color.FloralWhite),1);

}
}

并获取对应的对点坐标(X,Y)并自行绘制[结果见快照]。

在左下角你可以看到匹配项(用白线显示)和每个对应的对都有一个相同颜色的圆圈[通过我自己的函数],在另一侧 - 右下角,它是由 DrawMatches 绘制的结果来自 Emgu 的函数。请注意,这两个函数使用相同的 matMash 和 matchIndices。

所以我想知道 EMGU 的 DrawMatches 是否有错误或者我做错了什么?

最佳答案

使用每个对应对的描述符之间的欧氏距离从 ma​​tchIndices 中过滤最佳匹配可能非常有用。有时,第一张图像中的一个关键点可以很好地匹配第二张图像中的许多关键点,这可能会混淆结果中的绘制线。

过滤可能是这样的:

vector< DMatch > filtered_matches;

for( int i = 0; i < descriptors_of_model.rows; i++ )
{
if( matchIndices[i].distance < SMALL_THRESHOLD )
filtered_matches.push_back( matchIndices[i]);

}

关于c# - KNN 计算的图像中的绘图匹配对和 Features2DToolbox.DrawMatches 中的潜在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823994/

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