У мене вийшла відстежена робоча іграшка, і я керую нею за допомогою iPhone. Робот виводить живий канал камери відомого розміру кадру, і я показую його на UIImage.
Я додав до лазера вказівник і зафіксував його уздовж осі робота. Я намагаюся виявити на зображенні точку лазерного вказівника і, таким чином, намагаюся обчислити близькість об'єкта. Якщо лазерна крапка знаходиться далеко від центру, я знаю, що робот притулився до стіни і його потрібно зробити резервну копію.
Як я можу пізнати крапку яскравих біло-червоних пікселів на екрані? Одним з рішень було б вибірки кольору пікселів у певному радіусі від центру та виявлення яскравого кольору краплі. Чи може хтось запропонувати алгоритм цієї діяльності?
Іншим підходом було б відстеження середнього положення точки протягом кількох останніх кадрів, зменшуючи таким чином радіус здогадки. Якщо в заздалегідь заданій області немає крапки, область пошуку може бути розширена.
Нарешті, я хочу мати можливість навчити робота виявляти килим навколо нього. Килим певним чином відображає лазерний покажчик, і я хочу зрозуміти, скільки кадрів навколо робота мають подібні властивості. Якщо я знаю, де знаходиться лазерний вказівник на екрані, я можу вирізати з цього зображення невеликий прямокутник і порівняти їх один з одним. Чи існує ефективний спосіб порівняння декількох маленьких зображень один до одного, щоб зрозуміти, чи збігаються їх силуети?
Я помітив, що лазер відбивається від глянцевих поверхонь, і напрямок цього відбиття може сказати мені щось про орієнтацію поверхні в просторі, відповідно до законів заломлення.
Дякую!