Мне жаль говорить, что я не думаю, что это, вероятно, будет очень хорошо. Ваш алгоритм выглядит как упрощенная версия алгоритма Моравека , который сам по себе является одним из самых простых алгоритмов обнаружения углов. Жестко закодированные пределы, по которым вы тестируете, эффективно делают ваше тестирование ребра ступенчатой функцией, в отличие от такого подхода, как суммированные квадратные разности. Это почти наверняка даст вам разрыв в вашей функции обнаружения (углы, которые не совпадают, когда они должны иметь), для некоторых значений.
У вас также есть та же проблема, что и у Моравека, а именно: если ребро находится под углом к рассматриваемому соседу, оно не будет обнаружено.
Разработка алгоритмов - это весело, и если это не бизнес-критичный проект, то непременно продолжайте мастерить и экспериментировать (и не отчаивайтесь моими комментариями!). Но дело в том, что практически для любой практической задачи лучший алгоритм для задачи, которую вы хотите решить, почти наверняка уже существует. Реальная проблема заключается в определении того, как вы можете наилучшим образом смоделировать свою проблему таким образом, чтобы вы могли решить ее, используя существующий, хорошо понятый подход, разработанный экспертами.
В частности, сложная идентификация и анализ пограничных и наихудших вариантов выполнения - сложная задача; если вы не профессиональный алгорист, вам, скорее всего, будет трудно. Но я, конечно, призываю вас открыть это для себя, попробовав. nlucaroni упоминает несколько отличных вопросов, которые можно использовать в качестве отправных точек для вашего анализа.