У меня есть список окружностей (точки и размера) на изображении.
Моя цель - определить области, где много кругов (мы можем видеть три на примере изображения). Моя текущая реализация просто проходит все круги и проверяет все круги, пересекаются ли они. Затем я решаю выбрать круги, которые пересекают более 60 других кругов.
def circleCrossing(pt1,pt2, r1, r2):
distSq = (pt1[0] - pt2[0])**2 + (pt1[1] - pt2[1])**2;
radSumSq = (r1 + r2) * (r1 + r2);
if (distSq <= radSumSq):
return True
else:
return False
Проблема в том, что это слишком медленно, потому что есть 1000 кругов (1 кадр в секунду). Есть ли лучший способ найти эти области?
Цель проекта - определить рыб, круги - результат алгоритма обнаружения движения.