我怎么知道哪个眼睛检测结果是bes

2024-09-24 22:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

使用HaarDetectObject()函数检测眼睛时,得到的结果(detectedObjects)如下:

[((110, 47, 44, 44), 11), ((27, 45, 54, 54), 31)] 
[((114, 49, 40, 40), 10), ((28, 50, 47, 47), 17)] 
[((31, 50, 47, 47), 18), ((106, 47, 44, 44), 3)] 
[((106, 46, 44, 44), 38), ((29, 53, 45, 45), 35), ((18, 30, 74, 74), 4)] 
[((98, 54, 36, 36), 7), ((108, 48, 45, 45), 31), ((26, 52, 49, 49), 49)] 
[((109, 46, 45, 45), 28), ((29, 50, 49, 49), 38)] 
[((109, 46, 44, 44), 29), ((27, 47, 53, 53), 27), ((123, 45, 48, 48), 3)] 
[((108, 46, 44, 44), 35), ((28, 50, 49, 49), 33)] 
[((109, 47, 45, 45), 34), ((28, 53, 47, 47), 35), ((126, 50, 44, 44), 3)] 
[((109, 47, 44, 44), 29), ((29, 47, 51, 51), 39)] 
[((106, 47, 42, 42), 49), ((27, 49, 49, 49), 30)] 
[((31, 54, 42, 42), 13), ((110, 46, 44, 44), 4), ((125, 46, 44, 44), 4), ((27, 35, 66, 66), 6)] 

等等

我知道的是:

(110,47,44,44),11),即 x、 y,w,h?在

x,y是在“eyes”中检测到的“eye”左上角的坐标 w,h是宽度和高度来确定检测到的眼睛区域,所以这是cvRect格式

如你所见,最后一次探测有4只眼睛-因此我要问,我怎么知道哪两个是我完美探测到的眼睛?我的意思是,看到眼睛[I][0][0]对于任何一个I,我们可以知道眼睛是右还是左。但在这里,我们有两只左眼和两只右眼, 眼睛[0]和眼睛[3]是左边的,眼睛[1]和眼睛[2]是右边的。在

这是我的问题,现在如果我必须得到右眼和左眼的两个检测结果中的一个,我该怎么做?在

早些时候,我认为这只眼睛[i][1]可以用作某种分数。我有一段时间没有上网,所以我想是这样的。但这并不是我刚刚发现的一些质量分数。在

所以在我们的例子中,眼睛[0][1]是13,眼睛[1][1]是4,眼睛[2][1]是4,眼睛[3][1]是6。 我们称之为Q

在其余的检测中,我看到了一个模式,我的其他检测的Q值很高,通常在40-60之间,所以我认为这个范围内的Q值可能是最好的检测。但是正如我之前说的,不是。在

那么我该如何确定“眼睛”中的哪只“眼睛”是最好的检测方法呢?在


Tags: 函数区域宽度高度格式质量分数例子
1条回答
网友
1楼 · 发布于 2024-09-24 22:27:29

我想说,你可以使用之前的结果,并给每个图像中的检测到的眼睛更多的分数(假设你使用的是视频)。在

你也可以使用参数,如眼睛之间的距离来寻找最佳匹配的情侣。 最后你也可以做一些更复杂的事情(比如头/眼联合检测或背景减法)来获得你自己的模式,并搜索最佳匹配的眼睛位置。在

如果这个方法给你4只眼睛,你要么在预处理图像之前增强它的结果,要么在你的算法中增加一些复杂度来过滤结果。在

相关问题 更多 >