def merge_recs(recs, threshold):
filtered_recs = []
while len(recs) > 0:
r = recs.pop(0)
recs.sort(key=lambda rec: rec.distance(r))
merged = True
while(merged):
merged = False
i = 0
for _ in range(len(recs)):
if r.overlap(recs[i]) > threshold or recs[i].overlap(r) > threshold:
r = r.merge(recs.pop(i))
merged = True
elif recs[i].distance(r) > r.w/2 + recs[i].w/2:
break
else:
i += 1
filtered_recs.append(r)
return filtered_recs
评论列表
文章目录