椭圆重叠区域

时间:2019-06-05 14:36:25

标签: python geometry overlap ellipse

我正在开发 Eye Tracking 应用程序,当我检测到瞳孔并用椭圆形包围时,我必须将其与地面真相(瞳孔周围的精确椭圆形)进行比较。 / p>

当然总有3种情况:

  1. 没有重叠>>重叠=交点= 0
  2. 局部至完美重叠>>重叠=交叉区域/地面真实区域
  3. 封闭>>重叠=交叉区域/地面真相

我的问题是第三种情况,例如所发现的椭圆要比地面真相大得多,因此将其封闭在里面,因此总重叠量为1.0,这在数学上是正确的,但是在检测方面并非如此,因为所发现的椭圆不仅在其中包含瞳孔,而且在其他非瞳孔中零件。

问题是: 测量和计算发现的椭圆与真实椭圆之间的重叠百分比的最佳方法是什么?仅仅是区域的划分?

请提供一些见识。

PS:我正在使用python进行编码,并尝试使用shapely库执行此question的答案中提到的任务,因为据推测它会进行转换以正确定位椭圆旋转角度。

1 个答案:

答案 0 :(得分:0)

R为参考椭圆,E为计算的椭圆。

我们定义score := area(E ∩ R) / area(E ∪ R)。分数越大,比赛越好。

作为∅ ⊆ E ∩ R ⊆ E ∪ R,我们有0 ≤ score ≤ 1score=0 ⇔ (E ∩ R = ∅)
score=1 ⇔ E=R

考虑一个完全由R包围并具有一半面积的椭圆,以及一个完全包围R并具有两倍面积的椭圆。两者的得分均为0.5。如果它们更接近R,例如,如果第一个区域的面积为4/5,第二个区域的面积为5/4,则两者的得分均为0.8。