Як iOS UIImage iPhone iOS як виявити крапку "лазерного вказівника" на каналі камери?


9

У мене вийшла відстежена робоча іграшка, і я керую нею за допомогою iPhone. Робот виводить живий канал камери відомого розміру кадру, і я показую його на UIImage.

Я додав до лазера вказівник і зафіксував його уздовж осі робота. Я намагаюся виявити на зображенні точку лазерного вказівника і, таким чином, намагаюся обчислити близькість об'єкта. Якщо лазерна крапка знаходиться далеко від центру, я знаю, що робот притулився до стіни і його потрібно зробити резервну копію.

Як я можу пізнати крапку яскравих біло-червоних пікселів на екрані? Одним з рішень було б вибірки кольору пікселів у певному радіусі від центру та виявлення яскравого кольору краплі. Чи може хтось запропонувати алгоритм цієї діяльності?

Іншим підходом було б відстеження середнього положення точки протягом кількох останніх кадрів, зменшуючи таким чином радіус здогадки. Якщо в заздалегідь заданій області немає крапки, область пошуку може бути розширена.

Нарешті, я хочу мати можливість навчити робота виявляти килим навколо нього. Килим певним чином відображає лазерний покажчик, і я хочу зрозуміти, скільки кадрів навколо робота мають подібні властивості. Якщо я знаю, де знаходиться лазерний вказівник на екрані, я можу вирізати з цього зображення невеликий прямокутник і порівняти їх один з одним. Чи існує ефективний спосіб порівняння декількох маленьких зображень один до одного, щоб зрозуміти, чи збігаються їх силуети?

Я помітив, що лазер відбивається від глянцевих поверхонь, і напрямок цього відбиття може сказати мені щось про орієнтацію поверхні в просторі, відповідно до законів заломлення.

Дякую!

Лазерний покажчик закрити

Лазерний покажчик 1


1
Чи можете ви вмикати та вимикати лазерний покажчик за малюнком? Як і один кадр, він вимкнений, наступний - увімкнено, і ви віднімаєте наступні кадри, щоб зробити це дуже очевидним.
ендоліт

Це дуже гарна ідея! Але я не маю контролю над лазерним вказівником, він ні вмикається, ні вимикається.
Алекс Стоун

@AlexStone Я намагаюся досягти подібного, єдиною різницею є те, що я намагаюся виявити лазерне світло на зіниці ока. Чи можете ви допомогти мені з кодом ios або будь-яким зразком коду, який ви подали до суду з opencv при відстеженні лазерного променя? Заздалегідь оцінюйте вашу допомогу, дякую AJ.
AmJa

Відповіді:


10

OpenCV сумісний для iOS. Хоча це може бути не найефективнішим, він надає вам можливість перенесення алгоритму. Я зробив аналогічну проблему відстеження маркера за допомогою алгоритму ConDensation. Шукайте відстеження маркера за допомогою OpenCV. Це ДУЖЕ велика область дослідження, і точний алгоритм, який ви хочете, повністю залежить від вашої програми. Якщо я правильно пам'ятаю, існує близько 3000 повідомлених технологій обробки зображень - вибрати хороший - це справжнє мистецтво!

Одним з рішень було б вибірки кольору пікселів у певному радіусі від центру та виявлення яскравого кольору краплі. Чи може хтось запропонувати алгоритм цієї діяльності?

До речі, це основна ідея, що стоїть за тим, що називається фільтром частинок (з яких конденсація - один метод). Молодці, ви самі зрозуміли основну ідею!

Іншим підходом було б відстеження середнього положення точки протягом кількох останніх кадрів, зменшуючи таким чином радіус здогадки. Якщо в заздалегідь заданій області немає крапки, область пошуку може бути розширена.

Це називається стійкістю до держави і його можна моделювати різними способами. Алгоритм конденсації використовує стохастичний підхід, не схожий на звичайний старий фільтр Кальмана.

Чи існує ефективний спосіб порівняння декількох маленьких зображень один до одного, щоб зрозуміти, чи збігаються їх силуети?

Це трохи складніше. Ви можете спробувати відповідність шаблонів, але я не знаю, наскільки добре він буде працювати на iOS (дуже важкий розрахунок, і камера iOS не дуже підходить до нього).


Пол, дякую за неймовірно детальну відповідь! Я отримав OpenCV фреймворк і буду шукати приклади проектів, які його використовують.
Алекс Стоун

Привіт Пол, чи маєте ви уявлення про зразок програми для лазерного виявлення через камеру iOS за допомогою openCV?
AmJa

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.