首页 > 解决方案 > 如何使用图像中最近的位置自动重新排列框?

问题描述

我有两个装订盒。一个用于预测,其中包含 3 行,第二个用于包含两行的基本事实。

地面实况框 ( x,y,w,h )

[[210, 98, 103, 88],
 [62, 75, 150, 120]]

谓词框 ( x,y,w,h )

[[218, 104, 94, 69],
 [154 ,184, 34, 9],
 [67, 77, 143, 100]]

如果我需要使用 MATLAB 函数bboxOverlapRatio计算边界框重叠率。该函数使用谓词中的第一行评估第一行基本事实框。然后第二行的基本事实与来自谓词框的第二行进行评估。该函数使用顺序技术逐行评估绑定框。问题是:什么是使用最近的位置(地点)重新排列谓词框或通过它们在图像中的出现自动重新排列谓词框的功能?我想重新排列以获得高比例。

如果没有 MATLAB 函数,我该怎么做?

这是一个示例代码:

groundTruth = [210  98  103 88, 62  75  150 120]
predicate = [218 104 94 69, 154 184 34  9, 67 77 143 100];
ratio = bboxOverlapRatio(groundTruth,predicate)

我很感激任何帮助。

标签: matlabimage-processingcomputer-visionoverlapbounding-box

解决方案


根据函数bboxOverlapRatio的文档,

输出矩阵中的每个 (I, J) 元素对应于 bboxA 中的第 I 行和 bboxB 中的第 J 行之间的重叠率

对于该函数,您的第一个参数 (bboxA) 是groundTruth并且 bboxB 是predicate。因此,在比率数组中,元素表示和[0,1]之间的重叠比率。因此,对于,您可以遍历并找到其中的最大值。由于是最大值,这表明对于 groundTruth 中的第 1 行,谓词中的第 2 行具有最高值。grountTruth[0]predicate[1]groundtruth[1][1,0], [1,1], [1,2][1,2]

这可能很有用-max,尤其是Return Linear Indices部分。


推荐阅读