Я получил игрушку с отслеживаемым роботом и управляю ею с помощью iPhone. Робот выводит прямую трансляцию с камеры с известным размером кадра, и я отображаю ее на UIImage.
Я добавил лазерную указку на робота и закрепил ее вдоль оси робота. Я пытаюсь определить точку лазерного указателя на изображении и таким образом пытаюсь вычислить близость объекта. Если лазерная точка находится далеко от центра, я знаю, что робот застрял у стены и должен отступить.
Как я могу обнаружить точку ярких бело-красных пикселей на экране? Одним из решений будет выбор цвета пикселей в пределах определенного радиуса центра и обнаружение яркого цвета капли. Кто-нибудь может предложить алгоритм для этой деятельности?
Другой подход заключается в отслеживании среднего положения точки за последние несколько кадров, что позволяет уменьшить предполагаемый радиус. Если в предварительно определенной области нет точки, область поиска может быть расширена.
Наконец, я хочу научить робота обнаруживать ковер вокруг него. Ковер отражает лазерную указку определенным образом, и я хочу понять, сколько рамок вокруг робота имеют схожие свойства. Если я знаю, где находится лазерная указка на экране, я могу вырезать маленький прямоугольник из этого изображения и сравнить их один с другим. Есть ли эффективный способ сравнения нескольких маленьких изображений друг с другом, чтобы понять, соответствуют ли их силуэты?
Я заметил, что лазер отражается от глянцевой поверхности, и направление этого отражения может мне что-то сказать об ориентации поверхности в пространстве в соответствии с законами преломления.
Спасибо!